【发布时间】:2014-11-18 02:16:24
【问题描述】:
我遇到了 php 中的 exec 命令的问题。我正在尝试通过 php 中的 exec 命令运行包( ffmpeg.exe ),但是我的 php 脚本在备用运行中成功运行,即第一次运行很好,第二次运行给出内部服务器错误 500,然后第三次运行成功但第四次运行给出我同样的错误。我对此感到抓狂,但无法弄清楚它是 fastCGI 错误还是 php 错误。 我的环境详细信息是:操作系统 - Windows 7 Home Premium,Service Pack 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
这会交替进行 - 所有奇数运行都成功,所有偶数运行都会出错。我也尝试在命令提示符下运行相同的命令,并且每次都成功运行。请帮忙。
【问题讨论】:
-
我正在尝试各种方法,但问题仍然存在。谁能至少建议我应该尝试解决这个问题 - 升级 php 版本,或者对 IIS 服务器进行一些升级,或者更改 Web 服务器本身??
-
我遇到了这个确切的问题。 Windows Server 2008 R2、PHP 5.6.0、IIS 7.5 似乎只是对 ffmpeg 的调用会在下一次请求时导致 500 错误。 php-cgi.exe 进程在完成请求之前退出。我无法从 resmon 中弄清楚发生了什么。如果您对此有任何信息,请告诉我。