PHP通过system()调用git命令失败,退出代码为128

时间:2014-10-31 02:33:42

标签: php git

CentOS 5.9,PHP 5.4.21,Tomcat 7.0.42,安全模式已关闭。

我需要从php提交一些代码到存储库。但是退出代码128失败了。 代码如下,command_exec是&#cd; cd / data / project&& git add。'

ob_start();
$this->system_call_detail = system($this->command_exec, $this->output);
$logger->debug('ExecuteCMD system call result : '.$this->system_call_detail);
ob_end_clean();

我可以从cmd运行git命令作为apache用户帐户,但是从PHP运行的程序失败,退出代码为128。

我从PHP中猜到了这个原因。所以,我尝试了这个git命令," php -r'系统(" cd / data / project&& git add。",$ test); echo $ test;'"从cmd作为apache用户帐户并成功。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题..

首先,我在运行命令时无法获取内容,因为有些php bug(?)。 http://kr1.php.net/manual/en/function.system.php#108713

我修改了以下命令:

$this->system_call_detail = system($this->command_exec.' 2>&1', $this->output);

然后,我可以得到以下错误信息:

fatal: unable to access '/home/{username}/.config/git/config': Permission denied

但是,没有这样的文件或目录。 所以,我用谷歌搜索错误消息。并找到了一些博客。

http://www.jethrocarr.com/2013/08/25/the-apache-that-wanted-to-be-root/

我在发布的博客中编辑了'/ etc / sysconfig / httpd'文件。 并解决了。 :)

感谢帮助我。 deceze和ojrask