php – 允许Apache执行git pull
作者:互联网
还没有弄明白这一点..我已经看到了几个答案,但没有一个帮助.
我正在尝试使用Github Webhooks让github在我的服务器上点击一个url并让服务器在命中时立即下拉新提交的项目.我有一个PHP脚本,具有以下内容:
<?php `git pull git@github.com:my-user/myrepo.git`; ?>
但是,当命中时,该脚本作为用户apache运行,所以我试过:
chown -R apache:apache .
它仍然有权限被拒绝错误.
那么我尝试编辑sudoers文件并更改以下内容:
Host_Alias LOCAL=127.0.0.1
apache LOCAL=NOPASSWD: /var/www/html/git-hook.php
这仍然不起作用.
如何实现这一目标?如果我跑:
sudo php git-hook.php
它工作得很好,所以php文件中的代码没有任何问题.我只想让它自动化.
有任何想法吗?
编辑:
我也忘了提.我甚至创建了一个文件夹/home/apache/.ssh并复制了git pull over的公钥,结果相同.
解决方法:
更改您的PHP以通过sudo运行git
<?php `sudo git pull git@github.com:my-user/myrepo.git`; ?>
然后更改你的suoders以允许apit用户运行git
apache ALL = NOPASSWD: /usr/bin/git
标签:php,git,shell,webhooks 来源: https://codeday.me/bug/20190625/1287769.html