Apache+PHP5運行時出現mod_fcgid出現500錯誤的解決方法
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
前臺有朋友安裝了Apache+PHP5+MYSQL5,想多版本一起運行,同時運行PHP5.2/5.3/5.4然后都設置好了后出現
Please contact the server administrator
查看日志如下:
==============================================================
[Wed Nov 30 15:20:57 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:20:57 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:17 2016] [error] [client 222.129.236.32] File does not exist: D:/wwwroot/ttwhzg/web/favicon.ico
[Wed Nov 30 15:24:19 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:19 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:22 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:22 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:23 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:23 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:24 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:24 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:25 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:25 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 15:24:28 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 15:24:28 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 17:35:18 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
[Wed Nov 30 17:35:18 2016] [error] [client 222.129.236.32] Premature end of script headers: tz.php
[Wed Nov 30 17:35:21 2016] [warn] [client 222.129.236.32] (OS 109)管道已結束。 : mod_fcgid: get overlap result error
================================================================
根據搜索引擎找了一些相關的資料,也很模糊;
第一類錯誤是腳本執行被中斷,沒有返回完整的http header;第二類錯誤是cgi程序的執行被強行中止。
根本原因是fastcgi會自動kill掉一些發呆的、長時間沒有響應的進程(要不它比較快,比較省內存啊),
但是fastcgi的默認idle時間設置過于苛刻(官方文檔中每個選項都有默認的時間值),
所以有些處理比較慢、需要調用外部資源的程序就有可能被誤殺,所以先略微調整一下,繼續觀察:
<IfModule mod_fcgid.c>
IdleTimeout 600
ProcessLifeTime 3600
MaxProcessCount 8
DefaultMinClassProcessCount 3
DefaultMaxClassProcessCount 3
IPCConnectTimeout 30
IPCCommTimeout 600
#MaxRequestsPerProcess 500
</IfModule>
- IdleTimeout 發呆時限
- ProcessLifeTime 一個進程的最長生命周期,過期之后無條件kill
- MaxProcessCount 最大進程個數
- DefaultMinClassProcessCount 每個程序啟動的最小進程個數
- DefaultMaxClassProcessCount 每個程序啟動的最大進程個數
- IPCConnectTimeout 程序響應超時時間
- IPCCommTimeout 與程序通訊的最長時間,上面的錯誤有可能就是這個值設置過小造成的
- MaxRequestsPerProcess 每個進程最多完成處理個數,達成后自殺,因為PHP最多只處理500次請求。
上述選項的確切作用我也不是十分清楚,先用著這個設置,再根據情況調整。
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!