gpt4 book ai didi

在具有 IIS 配置的 Windows 上执行 PHP

转载 作者:可可西里 更新时间:2023-11-01 13:29:15 27 4
gpt4 key购买 nike

所以我已经阅读了大约 10 个答案,每个人似乎都提出了出于某种原因行不通的想法。

我正在尝试执行一个简单的命令行,即“svn update”,但它不工作并返回 NULL

所以我尝试了试错法,现在我只能说这些;

我试过几个命令,比如

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

<?php
exec ("cmd /c chdir > results.txt ");
?>

两者都有效.. 事实上 chdir 表示执行该行的 php 文件在 pc 上存储的确切位置..

所以现在的问题是,为什么要执行这样的命令:

<?php
exec ("cmd /c dir > results.txt ");
?>

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

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

<?php
exec ("cmd /c svn update > results.txt ");
?>

返回 NULL?

非常感谢任何帮助。

由于配置设置,感觉我有一些限制,因为当我尝试在本地使用 apache 时,我可以让大部分命令工作(shell_exec、系统、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>";
?>

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

现在在运行网络服务器的电脑上运行

control userpasswords2

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

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


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

svn: E125001: Can't determine the user's config path

要解决此问题,您只需在命令中指定 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);

希望这能帮助其他遇到像我一样问题的人!

关于在具有 IIS 配置的 Windows 上执行 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613616/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com