【发布时间】:2019-02-22 20:07:31
【问题描述】:
我需要检查为什么我的 exec 函数会停止我的 php 脚本。
我在 HTTP 查询中在“exec”函数中调用了一个 bat 文件(但我的 passthru、system 和 proc_open 有问题),2 分钟后我得到一个错误代码 500(没有详细信息)。但是我的 bat 文件总是在后台运行(我可以看到创建的文件......) 我是这样使用它的:
exec('cmd /c myScript.bat "myParam" 2>&1 &', $output);
在 $output 我什么都没有,在 php error_log 什么都没有...我已经添加了这个参数:
ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
set_time_limit(0);
error_reporting(E_ALL);
同样的结果...
我使用的是 PHP 7.2 和 IIS 8。
【问题讨论】:
-
2>&1和&后缀不太可能在 Windows 上运行。使用 Powershell 作为包装器或代替 CMD 可能会更幸运。还要先在 CLI 上进行测试。检查 IIS 的 error.log(或使用 Apache;) -
感谢您的帮助。 ;)
-
如果您想显示更多详细信息,您可以编辑答案(可能有利于其他/未来用户)。