我正在建立一个 github 帐户,与一些朋友一起开发一个小项目。
我希望我的家用机器能够通过 php 执行 git pull,这样我们只需调用这个小 php 文件即可使机器保持最新状态。
截至目前:
<?php
$output = shell_exec('git help');
echo "<pre>$output</pre>";
?>
这工作完美,我得到了输出,我在正确的目录中,所以 git pull 应该也能工作,但我得到一个挂起的页面,没有错误,什么也没有。
任何想法 ?
EDIT :精确一点,repo 相当小,大约 300K,从命令行只需要几秒钟。我还尝试了 shell_exec("dir"),并且我位于正确的目录中。如果我能足够精确的话,我正在 Windows 7 x64 上运行 xampp 的默认安装:)
我建议探索设置时间限制() http://php.net/manual/en/function.set-time-limit.php,并确保如果用户通过以下方式断开连接,您的 git pull 不会停止忽略用户中止() http://php.net/manual/en/function.ignore-user-abort.php。即使从千兆位连接的服务器运行,某些存储库也需要一段时间才能克隆。
另外,检查 PHP 的工作目录,并且ensure运行 PHP 的用户有权写入存储库。如果您通过 CLI 运行它并且它“正常工作”,则很有可能 PHP 在通过您使用的任何 Web 服务器访问时没有适当的权限运行。
If you chmod
目标目录为777
它可以工作,您很有可能需要重新编译 apache/php 以获得 suexec 支持。如果是这种情况,请不要将其保留为 777 :)
无论哪种方式,即使在您开始工作之后,超时和用户中止仍然是有效的考虑因素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)