1
我们有一个PHP脚本,其中包括什么,但下面的代码工作...GitHub的后钩不符合我们的PHP脚本
/usr/bin/git pull
...我们最初只使用git pull
。
每当GitHub发布数据到这个脚本,git pull
失败。我们已经尝试使用http://us2.php.net/manual/en/function.shell-exec.php并将响应存储在一个变量中,并将该变量的内容写入文本文件,这样我们就可以确保命令正在执行 - 它们是!我们可以执行例如git log
,并且文本文件将包含git日志响应的所有内容。但执行git pull
只是不起作用?
我们的服务器工程师建议使用git install的完整路径(使用which git
来查找路径),这就是您在上面看到的,但这也不起作用。
当GitHub的post-hook调用我们的脚本但是git pull
不起作用时,为什么我们可以执行git命令,例如git log
?
有没有人有任何想法,为什么这不起作用?
谢谢。
您可以发布整个脚本吗? – 2012-03-16 10:47:12
@starlocke“解决方案必须聘请新的服务器工程师,对吧?”是的,这将是很好的:-) – Integralist 2012-03-16 13:52:59
@WaynnLue整个脚本? php脚本实际上就是整个脚本的'/ usr/bin/git pull'(因为命令是反引号包装的,PHP把这行看作是shell命令而不是PHP代码)。所以我们使用PHP来触发shell命令,并且通过GitHub触发器调用PHP脚本(当我们将更改推送到GitHub时发生)。我们发现我们可以执行'git log'&'git status',而不是'git pull'或类似的'git fetch'命令。我在想,必须有一个PHP权限问题,但为什么允许'git log'或'git status'而不是'git pull'? – Integralist 2012-03-16 13:57:27