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)
好.
我设法解决了这个问题..
这就是我做的:
首先检查特定网站正在运行的用户名..这样做:
<?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)
希望这有助于其他有问题的人,比如我有的!
| 归档时间: |
|
| 查看次数: |
7798 次 |
| 最近记录: |