我正在开发一个将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");
答案 0 :(得分:-1)
我在计算机上执行了您的代码
file_put_contents("gitclone.bat", "git clone https://github.com/gutyina700/WPTG.git");
exec("gitclone.bat 2>&1",$o);
print_r($o);
额外的代码是检查cmd的输出,并返回“ git命令不存在” 所以您只需要添加一行作为
<?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);
?>
这工作正常。