PHP执行Windows配置IIS

mst*_*ion 5 php windows iis exec

所以我已经阅读了大约10个答案,每个人似乎都提出了由于某种原因无效的想法.

我试图执行一个简单的命令行,这是"svn更新"但它不工作,它返回NULL

所以我尝试过试错法,现在这就是我能说的;

我尝试了几个命令

<?php
exec ("cmd /c ping 127.0.0.1 -n 1 > results.txt ");
?>
Run Code Online (Sandbox Code Playgroud)

<?php
exec ("cmd /c chdir > results.txt ");
?>
Run Code Online (Sandbox Code Playgroud)

并且都工作.. infact chdir说执行行的php文件存储在pc上的确切位置..

所以现在的问题是,为什么这样的命令如下:

<?php
exec ("cmd /c dir > results.txt ");
?>
Run Code Online (Sandbox Code Playgroud)

不工作?这个结果和空值即使在文件夹中我有几个文件和目录.

为什么如果我使用命令提示符移动到存储php文件的文件夹并键入svn update它工作和做

<?php
exec ("cmd /c svn update > results.txt ");
?>
Run Code Online (Sandbox Code Playgroud)

返回NULL?

任何帮助真的很感激.

感觉我对配置设置有一些限制,因为当我尝试在本地使用apache时,我可以使大多数命令工作(shell_exec,system,exec,即使没有cmd/c)

mst*_*ion 8

好.

我设法解决了这个问题..

这就是我做的:

首先检查特定网站正在运行的用户名..这样做:

<?php 
$out = array();
exec('cmd /c whoami 2>&1',$out,$exitcode);
echo "<br />EXEC: ( exitcode : $exitcode )";
echo "<hr /><pre>";
print_r($out);
echo "</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

这将返回计算机名后跟用户名..

现在在运行webserver的计算机上运行

control userpasswords2
Run Code Online (Sandbox Code Playgroud)

并授予管理员权限whoami说的用户名

这将允许您最终使用exec或system_exec运行您想要的任何命令


另一方面继续我的SVN命令我发现我有另一个问题,那就是当你运行它时,它会查找管理员帐户下的配置文件,并会给出错误说:

svn: E125001: Can't determine the user's config path
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您只需在命令中指定config_dir:

exec('cmd /c svn update --config-dir C:\Users\Administrator\AppData\Roaming\Subversion C:\\inetpub\\vhosts\\websitename\\httpdocs\\folder 2>&1',$out,$exitcode);
Run Code Online (Sandbox Code Playgroud)

希望这有助于其他有问题的人,比如我有的!