我有一個非常痛苦的慢腳本,它從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