我正在开发一个将github存储库拉到服务器的php应用程序。 Github webhooks调用php文件。
我想用php执行cmd命令。我假设我需要apache权限,但我不知道如何给他们。
下面的PHP代码创建一个mkdir.bat
和一个gitclone.bat
并运行它们。 mkdir
成功运行,它创建一个空文件夹,但gitclone
不会创建任何文件夹或文件。当我手动运行gitclone
时,它会创建文件夹和文件。
file_put_contents("mkdir.bat", "mkdir test");
exec("mkdir.bat");
file_put_contents("gitclone.bat", "git clone https://github.com/gutyina700/WPTG.git");
exec("gitclone.bat");
我在电脑上执行了你的代码
file_put_contents("gitclone.bat", "git clone https://github.com/gutyina700/WPTG.git");
exec("gitclone.bat 2>&1",$o);
print_r($o);
额外的代码是检查cmd的输出并返回“git command not exsists”所以你只需要添加一行
<?php
putenv("PATH=C:\Program Files\Git\cmd");
file_put_contents("gitclone.bat", "git clone https://github.com/gutyina700/WPTG.git");
exec("gitclone.bat 2>&1",$o);
print_r($o);
?>
这工作正常。