繁体   English   中英

带git pull的Shell_exec?

[英]Shell_exec with git pull?

我正在建立一个github帐户,与一些朋友一起开展一个小项目。 我想让我的家用机器能够通过php进行git pull,这样我们就必须调用这个小的php文件让机器保持最新状态。

截至目前:

<?php
$output = shell_exec('git help');
echo "<pre>$output</pre>";
?>

这很好用,我得到了输出,我在正确的目录中,所以git pull也应该工作,但我得到一个挂页,没有错误,没有。

任何的想法 ?

编辑:一些精度,回购非常小,大约300K,从命令行只需几秒钟。 我也试过shell_exec(“dir”),我在正确的目录中。 我在Windows 7 x64上运行xampp的默认安装,如果我足够精确:)

我建议探索set_time_limit() ,并确保如果用户通过ignore_user_abort()断开连接,你的git pull不会停止。 即使从千兆连接的服务器运行,一些存储库只需要一段时间来克隆。

另外,检查PHP的工作目录,并确保运行PHP的用户具有写入repo的权限。 如果您通过CLI运行它并且它“正常工作”,那么当您通过任何正在使用的Web服务器访问时,PHP很可能在没有适当权限的情况下运行。

如果你将destionation目录chmod777并且它有效,那么你很有可能需要重新编译apache / php以获得suexec支持。 如果是这样的话,请不要只留下777 :)

无论哪种方式,超时和用户中止仍然是有效的考虑因素,即使你使它工作。

所以,回答我自己的问题。

事实上,这是一个权限问题(感谢蒂姆),从PHP CLI开始,脚本正在运行。

问题是服务php安装使用了一些奇怪的权限。 所以你/我需要通过命令行(或者在这种情况下是Xampp控制面板)启动PHP服务器。

现在它正在工作,给我“已经是最新的”。 回答我在等待:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM