我有一个非常痛苦的缓慢脚本,它从MySQL获取大量数据,并从中创建一个大型报告,最后作为应用程序/强制下载提供给用户。
长话短说,在生产服务器上,它一直在大约30秒后终止(相当一致),并输出一个空文件。在开发服务器上,它工作得很好,但它的执行时间要长得多--大约90秒。为了“安全”,我将php.ini文件设置为max_execution_time = 2000,并在脚本的开头运行set_time_limit(4000) (数字远远超出了预期的完成时间,但只是为了确保;)。
是什么原因导致我的web服务器忽略了我设置的时间限制,并在30秒后退出?
编辑:我确定的一件事是,代码的MySQL部分需要8-9秒才能完成,而且每次都成功地通过了这一点。
发布于 2011-06-01 04:22:38
也许是PHP的safe_mode。
试着做一个
die(ini_get('max_execution_time'))在调用set_time_limit(0);之后读取值,看看它是否被覆盖。
如果它被覆盖为0,而您的脚本仍然死掉,那么原因可能出在代码中的其他地方
https://stackoverflow.com/questions/6193104
复制相似问题