我有一個PHP腳本編寫的調用外部命令使用exec將空間數據庫查詢結果編譯成形狀文件。在有大量記錄(比如15,000)的表中,該命令可能需要7分鐘才能執行。該腳本在不需要太長時間的腳本(可能是< 2分鐘)上工作正常,但在較長的腳本(如7分鐘腳本)上頁面將顯示「500內部服務器錯誤」。在審查Apache服務器日誌時,錯誤狀態爲:「腳本標題的提前結束:php-cgi.exe」。我已經調整了php的最大執行時間,以便有足夠的時間,所以我知道這不是這個。是否有最大的阿帕奇被擊中或其他?執行從PHP導致「腳本標題提前結束:php-cgi.exe」錯誤
2
A
回答
1
腳本標題提前結束意味着您的腳本超出了CGI腳本的Web服務器超時。這是一個網絡服務器超時,它與php.ini配置無關。您需要查看CGI處理程序配置以增加CGI腳本運行的時間。
E.g.如果您使用的是mod_fastcgi,您可能需要在Apache配置中指定以下選項:FastCgiServer -idle-timeout 600
這會讓您超時10分鐘。默認fastcgi提供30秒。你可以找到一些其他的FastCGI選擇這裏http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html
1
顯然,包含在Apache的2.4默認的httpd.conf文件不會自動包含額外的文件的httpd-default.conf下/ conf目錄/額外的(可能是由設計) ,其中包含超時參數。由於超時參數未定義,它將恢復爲默認值30秒,並且腳本超時。
我做了以下解決它:
- 開業的httpd.conf並添加以下行至底部:
包含的conf /額外/ httpd的默認。 conf
- 重新啓動的Apache,它的工作。
另一種方法是簡單地以下行(多個)添加到的httpd.conf文件:
超時300
的KeepAlive在
MaxKeepAliveRequests 100
的KeepAliveTimeout 5
希望這可以幫助那裏的人:)
相關問題
- 1. Perl腳本不工作..(錯誤:腳本標題提前結束)
- 2. 腳本標題提前結束:CGI + C++
- 3. 錯誤500 - 腳本標題的提前結束
- 4. 500服務器錯誤:腳本標題提前結束:
- 5. 腳本提前結束?
- 6. Apache:標題前腳本輸出結束
- 7. 腳本標題提前結束:php5 Symfony產生內部服務器錯誤500
- 8. 服務器內部錯誤:file.cgi中腳本標題的提前結束
- 9. Weka錯誤提前結束
- 10. mod_fcgid讀取數據超時 - 腳本標題的提前結束
- 11. PHP web服務,在腳本執行結束前發送響應
- 12. 導入錯誤:執行Python腳本
- 13. 從PHP執行Perl腳本的問題
- 14. PyQt4的腳本給致命錯誤:「無法執行腳本XYZ」
- 15. 從php執行python腳本時出錯
- 16. 在Perl腳本結束之前總是執行一些代碼
- 17. npm運行腳本導致Windows腳本宿主錯誤
- 18. 不一致的行結束錯誤
- 19. C#命令行腳本在Visual Studio提前結束
- 20. 從php執行Powershell腳本
- 21. 從php執行bash腳本
- 22. NightmareJS腳本執行錯誤
- 23. Python腳本執行錯誤
- 24. Fread不尋常的行結束導致錯誤
- 25. PHP腳本過早結束
- 26. PHP腳本過早結束
- 27. PHP腳本何時結束?
- 28. 解析錯誤之前「結束行」
- 29. PHP - 從函數內部結束當前文件的執行
- 30. 最小化angularjs腳本導致錯誤