我在 php 中遇到了 exec 命令的问题。我正在尝试通过 php 中的 exec 命令运行一个包( ffmpeg.exe ),但是我的 php 脚本在交替运行时成功运行,即第一次运行正常,第二次运行给出内部服务器错误 500,然后第三次运行成功但第四次运行给出我同样的错误。我对此感到疯狂,但无法确定它是 fastCGI 错误还是 php 错误。 我的环境详细信息是:操作系统 - Windows 7 家庭高级版,服务包 1; IIS 版本 7.5.7600; PHP 版本 5.3.28
我的 php 脚本非常简单:-
echo "hello";
echo '</br>';
$cmd_to_execute = 'ffmpeg.exe -f concat -i list.txt -c copy output.mp4 -y';
echo $cmd_to_execute;
echo '</br>';
$f = exec($cmd_to_execute,$a,$b);
var_dump($a);
var_dump($b);
var_dump($f);
echo "finished";
? >
当它成功运行时:它产生的输出是:
hello
ffmpeg.exe -f concat -i list.txt -c copy output.mp4 -y
array(0) { } int(0) string(0) "" finished
失败时,页面显示如下信息:
Module FastCgiModule
Notification ExecuteRequestHandler
Handler PHP53_via_FastCGI
Error Code 0x800703e3
这交替进行 - 所有奇数运行都成功,所有偶数运行都出错。我还尝试在命令提示符下运行相同的命令,并且每次都成功运行。请帮忙。
最佳答案
我知道一个老问题,但我遇到了完全相同的问题,使用 exec() 时 php 脚本每隔一段时间就会失败。这也导致其他非常简单的 php 脚本出现问题,这些脚本在过去从未出现过任何问题。
我正在运行一个批处理脚本,它在末尾有一个“暂停”。一旦我从 .bat 中删除暂停,我的 php 脚本每次都会运行。所以看起来 php 进程没有干净地关闭,即使它显然完成了。然后它需要另一次运行失败,从而重置进程..?
无论如何,如果有人有这个问题,请查看第一个(成功的)过程是如何结束的。
关于php - PHP 中 exec 命令的 FAST CGI 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26002466/