PHP exec()挂起,错误500

PHP exec()挂起,错误500,php,exec,freeze,Php,Exec,Freeze,所以,我的计划是用PHP和IECapt制作URL的小缩略图。 IECapt运行良好,是一个很好的命令行工具,可以在1到4秒内获得指定URL的完整图像。 但我的问题是通过PHP执行它。这是我一直在尝试的代码: exec('IECapt.exe ' . escapeshellarg($URL) . ' ' . escapeshellarg($Filename)) $URL当然是URL,$filename是URL的简化版本 有时我会让IECapt捕捉图像(通过PHP),但它需要非常长的时间(30-6

所以,我的计划是用PHP和IECapt制作URL的小缩略图。 IECapt运行良好,是一个很好的命令行工具,可以在1到4秒内获得指定URL的完整图像。 但我的问题是通过PHP执行它。这是我一直在尝试的代码:

exec('IECapt.exe ' . escapeshellarg($URL) . ' ' . escapeshellarg($Filename))
$URL当然是URL,$filename是URL的简化版本

有时我会让IECapt捕捉图像(通过PHP),但它需要非常长的时间(30-60秒),最后我总是会得到500个错误,没有错误消息告诉我出了什么问题。 这两个变量都很好,它们使用命令行手动工作:

IECapt Google.png

我的服务器设置为IIS7和PHP5.2.9(如果相关)。 (Windows Vista,全部在我的个人电脑上,因此可以完全访问。)


有什么想法吗?

可能超出了执行时间,脚本被终止。


编辑配置文件后,还要检查错误消息显示是否打开,以便它们进入屏幕(将display_errors设置为打开)

正如Palantir所说,这超过了默认的PHP执行时间。任何可能需要很长时间(即几秒钟以上)的操作都不应通过web浏览器中的PHP脚本运行

您需要编写CLI脚本(命令行)以异步运行此类操作。默认情况下,CLI脚本对执行时间没有限制

查看更多信息

如果您需要处理大量此类操作(例如,必须处理100次此类操作),那么您应该看看旨在解决此类问题的消息队列。看

web浏览器不是进行繁重处理的合适位置:)

对于500错误,您总是会在
error.log
中看到详细的错误消息。请发那条消息。