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免密运行列表中。
# 编辑免密配置文件 vim /etc/sudoers 【没权限执行编辑,chmod g+w /etc/sudoers】 www ALL=NOPASSWD:/usr/bin/git 记得重启服务器:service nginx reload 在推送到码云上就可以pull到服务器上来
现在 即使是 服务器炸了 我代码 在码云有备份 码云炸了 家里 也有 家里 电脑坏了 公司 还有!!!
![[坏笑]](http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png)
关键字词: git钩子配置权限问题
上一篇: php实现多继承-trait语法
下一篇: php链式操作的实现方式