我有一个非常痛苦的慢脚本,从MySQL获取大量数据并创建一个大型报告,它最终作为应用程序/强制下载服务于用户。
长话短说,在生产服务器上它会在大约30秒后(非常一致地)终止并且吐出一个空文件。在开发服务器上它工作正常,但执行时间要长得多 - 大约90秒。为了'安全',我将我的php.ini文件设置为max_execution_time = 2000
,并在我的脚本开头运行set_time_limit(4000)
(数字超过预期的完成时间,但只是为了确定;) )。
什么可能导致我的网络服务器忽略我设置的时间限制并在30秒后退出我?
编辑:我确定知道的一件事是,代码的MySQL部分需要8-9秒才能完成,并且每次都成功地超过了这一点。
答案 0 :(得分:7)
也许是PHP safe_mode。
尝试做
die(ini_get('max_execution_time'))
在调用set_time_limit(0);
后查看该值是否真的被覆盖了。
如果它被覆盖为0并且您的脚本仍然死亡,则原因可能是您代码中的其他位置