【问题标题】:PHP shell_exec() returns different result to running same line in command linePHP shell_exec() 返回不同的结果以在命令行中运行同一行
【发布时间】:2021-04-13 10:29:44
【问题描述】:

所以,我有一个 python 脚本,我使用 PyInstaller 将它“编译”为 .exe。该脚本使用click 作为命令行界面。它将根据传递的参数返回“0”或“1”。当通过命令行调用时,它既适用于我的开发机器,也适用于运行网站的机器。

C:\wamp64\www\nested_folders\SChecker.exe --serial="051326584"

但是当在网站上通过 PHP 调用时,传递的 $_serial 是从表单 POST 传递的:

$cmd = "C:\\wamp64\\www\\nested_folders\\SChecker.exe --serial=$_serial";
$cmd_result = shell_exec($cmd);

它总是返回“0”。总是。我检查了传递给 shell_exec() 的传递的 $cmd 值,并且传递的值可以通过命令行正常工作。

非常感谢任何想法或帮助。谢谢

【问题讨论】:

    标签: python php shell-exec


    【解决方案1】:

    所以我现在已经弄清楚发生了什么。

    我首先创建了一个与 .bat 文件等效的进程,以检查它是否来自 python 脚本。但它仍然存在,因为事实证明发生了一个错误,但它根本没有被标记回来。它是通过在调用 bat 的 cmd 行末尾添加 2>&1 来识别的。这让我很高兴收到“访问被拒绝”错误。

    这是由于网站没有以我的用户身份运行,因此没有运行文件的权限。

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多