我有一个非常痛苦的慢脚本,它从MySQL获取大量数据,并创建一个大型报告,它在最后以应用程序/强制下载的形式提供给用户。长话短说,在生产服务器上,它在大约30秒(相当一致)之后保持终止,并且将空文件转出。在开发服务器上它工作正常,但执行时间明显更长 - 大约90秒。为了'安全',我将我的php.ini文件设置为max_execution_time = 2000
,并在脚本的开始处运行set_time_limit(4000)
(数字超过预期的完成时间,但只是为了确定;))。PHP set_time_limit没有影响
什么可能导致我的网络服务器忽略我设置的时间限制,并在30秒后退出?
编辑:我确切知道的一件事是,它需要8-9秒的MySQL部分完成,并且它每次都成功通过该点。
怎么样上的MySQL侧的时间限制?并在php.ini中的mysql功能? – Fosco 2011-05-31 20:22:23
检查您的内存限制。你可能会耗尽你的最大记忆。 – 2011-05-31 20:23:06
检查'phpinfo()'输出以查看max_execution_time的“本地”设置。 PHP可以有多个.ini文件(用于命令行和基于Web的执行),并且可能修改了错误的文件。 – 2011-05-31 20:29:15