用PHP运行控制台程序
我编写了一个简单的PHP代码来执行控制台程序:用PHP运行控制台程序,php,webserver,Php,Webserver,我编写了一个简单的PHP代码来执行控制台程序: <?php $cmd = escapeshellcmd('progName.exe arg1 arg2 arg3'); exec($cmd); ?> 然后我编写了一个简单的控制台程序,将一个句子写入文本文件(writext.exe hello.txt)。使用相同的PHP脚本,我在浏览器上运行了它,它运行正常 我已经尝试增加服务器上的超时,但仍然有相同的错误。 什么可能导致此问题?当您使用exec函数(例如exec('dir'))在PH
<?php
$cmd = escapeshellcmd('progName.exe arg1 arg2 arg3');
exec($cmd);
?>
然后我编写了一个简单的控制台程序,将一个句子写入文本文件(writext.exe hello.txt
)。使用相同的PHP脚本,我在浏览器上运行了它,它运行正常
我已经尝试增加服务器上的超时,但仍然有相同的错误。
什么可能导致此问题?当您使用
exec
函数(例如exec('dir')
)在PHP中执行程序时,PHP会等待程序结束或您将其发送到后台,PHP会直接返回(尤其是注释)
根据您发布的PHP源代码($cmd=escapeshellcmd('progName.exe arg1 arg2 arg3');
),该程序不是由PHP发送到后台的-因此剩下的是progName.exe
progName.exe的源代码)
writext.exe hello.txt
(而不是progName.exe
),会发生什么情况从控制台通过PHP?如何在控制台上通过PHP运行?看起来返回有问题,它只执行progName而不返回,progName看起来是什么样子?控制台应用程序是您开发的吗?您是否尝试附加调试器?@Wiggler Jtag:但是,如果我直接在控制台上运行progName.exe
(在服务器上),它工作。progName.exe
读取3个参数并生成2个文件:一个二进制文件和一个.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