注册 登陆

    2019-09-26 22:54:10git钩子配置权限问题

    您现在的位置是: 首页 >  php >  git钩子配置权限问题

    我这边用的是码云,希望web程序push到gitee上后,自动pull到云服务器,实现本地与服务器的数据同步更新。
    我先是在服务器创建了一个 pull.php文件(该PHP 里面 就写了一个  echo 123;)。
    然后去码云上面填写了 http://xxxxx.xxxxx.com/public/pull.php地址 码云钩子里面点击测试 可以成功返回123.
    说明我的地址也OK 么有问题
    但是我把pull.php 里面 内容改成 echo   shell_exec("cd /www/wwwroot/www;  git pull 2<&1");
    (shell_exec()是执行 shell脚本函数)。确没有任何返回 也没有 把我的代码从 码云上面PULL下来
    我好奇是不是我的 php脚本写的有问题 ?
    于是我登陆我的服务器,然后用root账号,手动执行 php pull.php
    居然成功了  把码云上面的代码成功的下载到我的服务器上了,这就说明我的脚本写的也没有问题,
    这边可以定位到运行php的用户的pull权限问题。

    问题处理1:生产并部署ssh key

        附上码云帮助文档链接:帮助文档链接

    权限处理2:我这边是lump的www用户,给pull的文件加上www用户和www用户组,chown www:www pull.php

    ,这样给权限文件加了权限测试还是不行,推送到码云,还是没有自动同步到码云。

    权限处理3:如果git不运行,则更改为sudo git,这时候就需要把apache增加到sudu免密运行列表中。

    1. # 编辑免密配置文件
      vim /etc/sudoers 【没权限执行编辑,chmod g+w /etc/sudoers】 
      www ALL=NOPASSWD:/usr/bin/git
      记得重启服务器:service  nginx reload 
      在推送到码云上就可以pull到服务器上来
    现在 即使是 服务器炸了 我代码  在码云有备份    码云炸了   家里 也有   家里  电脑坏了  公司 还有!!! [坏笑] 

关键字词: git钩子配置权限问题

0