我们有一个PHP脚本,它只包含以下代码......
/usr/bin/git pull
...我们最初只使用git pull
。
每当GitHub向此脚本发布数据时,git pull
都会失败。我们尝试使用http://us2.php.net/manual/en/function.shell-exec.php并将响应存储在变量中,并将该变量的内容写入文本文件中,这样我们就可以确保命令正在执行 - 它们就是!我们可以执行例如git log
,文本文件将包含git log响应的所有内容。但执行git pull
只是不起作用?
我们的服务器工程师建议使用git安装的完整路径(使用which git
查找路径),这就是您在上面看到的内容,但这也不起作用。
我们很困惑为什么我们可以在GitHub的post-hook调用我们的脚本时执行git命令,例如git log
但是git pull
不起作用?
对于为什么这不起作用,有没有人有任何想法?
感谢。
答案 0 :(得分:0)
确保以具有足够权限的用户身份执行代码。您可以通过在尝试使用git
提取的脚本中运行whoami
来确认这一点