PHP exec()挂起,错误500

时间:2009-09-22 14:31:59

标签: php exec hang

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

exec('IECapt.exe ' . escapeshellarg($URL) . ' ' . escapeshellarg($Filename))

$ URL当然是URL,$ filename是URL的简化版本。

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

IECapt http://google.com Google.png

我的服务器设置是IIS7和PHP5.2.9,如果相关的话。 (Windows Vista,全部在我的个人计算机上,因此完全访问。)

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可能超出了执行时间,并且您的脚本被终止。 http://us3.php.net/manual/en/info.configuration.php#ini.max-execution-time

编辑配置文件后,还要检查错误消息显示是否为On,以便它们到达您的屏幕(将display_errors设置为On)

答案 1 :(得分:0)

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

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

有关详情,请参阅http://php.net/cli

如果您遇到很多此类事情(即必须处理100次此类操作),您应该查看旨在解决此类问题的消息队列。见http://framework.zend.com/manual/en/zend.queue.html

网页浏览器不适合繁重处理:)