我写了一个简单的 PHP 代码来执行一个控制台程序:
<?php
$cmd = escapeshellcmd('progName.exe arg1 arg2 arg3');
exec($cmd);
?>
如果我直接在服务器上的控制台上运行命令,它就可以工作。但是,当我在浏览器上运行 PHP 时,它不起作用。该进程progName.exe
正在运行(使用服务器上的任务管理器检查),但它永远不会完成。该程序应该从参数计算一些参数并将结果写入二进制文件,并生成一个 .WAV 文件。这是我在浏览器上收到的错误消息:
Error Summary
HTTP Error 500.0 - Internal Server Error
C:\php\php-cgi.exe - The FastCGI process exceeded configured activity timeout
Detailed Error Information
Module FastCgiModule
Notification ExecuteRequestHandler
Handler PHP
Error Code 0x80070102
然后我编写了一个简单的控制台程序,将句子写入文本文件 ( writeTxt.exe hello.txt
)。使用相同的 PHP 脚本,我在浏览器上运行它并且它可以工作。
我已经尝试增加服务器上的超时时间,但仍然有同样的错误。什么可能导致这个问题?