如何使用exec()从php推送git

时间:2014-10-05 11:38:28

标签: php windows git batch-file git-push

这是我的 push.bat 文件

echo "Hello world!"
cd abhishek3/
call git add .
call git commit -m "sadf"
call heroku accounts:set abhishek84 
call git push heroku master

我可以通过在cmd中运行push.bat文件来推送到我的存储库

我想从php推送到我的repo,尝试使用以下代码片段,但它们都不适用于我。

exec("psexec -d push.bat");

结果: PHP页面无限期加载

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C abhishek3.bat, 0, false);

结果:页面停止加载一段时间后无法正常工作

exec("cmd.exe /c abhishek3.bat")

结果:页面停止加载一段时间后无法正常工作

修改 试过以下片段但没有任何效果。

exec("hstart.exe /NOCONSOLE \"cmd.exe /c \"abhishek3.bat\"\"");

以上代码段从cmd运行时成功运行,但从php运行时通过exec()无法正常运行。 Download hstart (Hidden Start Binary)

1 个答案:

答案 0 :(得分:1)

  1. 检查Web用户的权限是否正确(可以访问文件并执行git)
  2. 检查git的路径以及它可能需要的任何环境变量。您可能必须在脚本中设置这些环境变量并使用绝对路径)
  3. 检查IIS或apache(无论你使用哪个)允许执行一般程序和bat文件(例如,如果它是apache,你可能需要配置httpd.conf或htaccess,具体取决于你的配置)