用于git的shell_exec配置拉Godaddy vs Bluehost

Jim*_*ire 8 git shared-hosting bluehost

我有一个来自Github的git pull web hook,两个遥控器,GoDaddy [生产]和Bluehost [staging].这个问题不是关于那些公司本身,而是可能是设置差异的原因.我有这个脚本,我在github.com上设置为post commit hook:

<?php
$output = shell_exec('git pull origin master');
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

当我提交Github仓库时,钩子会在Bluehost上启动并正常工作.它对Godaddy没有任何作用.

Bluehost浏览器响应:

"already up to date". Pull command works, and the Bluehost repo is updated.
Run Code Online (Sandbox Code Playgroud)

Godaddy浏览器响应:

<pre></pre> Pull command has not worked. Repo not updated.
Run Code Online (Sandbox Code Playgroud)

当我通过浏览器运行此脚本时:

<?php
$output = shell_exec('ls');
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

我在两台服务器上都获得了正确的'ls'目录输出.

当我通过SSH进入目录时,我可以手动发出命令'git pull origin master',它可以在两台服务器上运行.那么这只是意味着Godaddy允许PHP发出一些命令,而不是其他命令吗?我能以某种方式修复此问题吗?没有人会自动部署到Godaddy中,这是不正确的!

Von*_*onC 8

这可能类似于先前的案例,其中:

Godaddy技术支持证实,php无法在其共享托管环境中访问git命令.
他们表示需要VPS来实现这一目标.

此注释确认在共享服务器上的php设置(您可以配置)非常有限.

因此,请查看Godaddy支持,如果这是您的设置的情况.

  • 谢谢VonC,我想这就是答案。既然我为这个问题付了50分,我就来社论说只有疯子才会用Godaddy来主持。我现在已经与这家公司打交道,涉及大约 10 个不同的领域,为 10 个不同的客户提供服务。新规则:如果您希望 Jim 在您的网站上工作,则必须将其从 Godaddy 中删除。 (2认同)