PHP set_time_limit无效

时间:2011-05-31 20:20:40

标签: php apache timeout

我有一个非常痛苦的慢脚本,从MySQL获取大量数据并创建一个大型报告,它最终作为应用程序/强制下载服务于用户。

长话短说,在生产服务器上它会在大约30秒后(非常一致地)终止并且吐出一个空文件。在开发服务器上它工作正常,但执行时间要长得多 - 大约90秒。为了'安全',我将我的php.ini文件设置为max_execution_time = 2000,并在我的脚本开头运行set_time_limit(4000)(数字超过预期的完成时间,但只是为了确定;) )。

什么可能导致我的网络服务器忽略我设置的时间限制并在30秒后退出我?

编辑:我确定知道的一件事是,代码的MySQL部分需要8-9秒才能完成,并且每次都成功地超过了这一点。

1 个答案:

答案 0 :(得分:7)

也许是PHP safe_mode。

尝试做

die(ini_get('max_execution_time'))

在调用set_time_limit(0);后查看该值是否真的被覆盖了。

如果它被覆盖为0并且您的脚本仍然死亡,则原因可能是您代码中的其他位置