freebsd9.1源碼安裝apache.mysql.php環(huán)境 freebsd安裝python
2024-02-22
更新時(shí)間:2024-02-22 00:08:58作者:佚名
圓嘟嘟選擇的主機(jī)搭配是Windows 2003 Server+Apache+PHP+Mysql,當(dāng)網(wǎng)站初步上線測(cè)試后,我在主機(jī)運(yùn)維方面遇到了很多問題,這里先說一個(gè)比較罕見,而且也讓我頭疼好幾天的問題,就是APACHE在運(yùn)行一段不定時(shí)的時(shí)間后,就自動(dòng)停止了,Windows系統(tǒng)日志顯示是:Apache2 服務(wù)因 1 (0x1) 服務(wù)性錯(cuò)誤而停止。而APACHE的error日志里最后的內(nèi)容如下:
[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358: Child: Process exiting because it reached MaxConnectionsPerChild. Signaling the parent to restart a new child process.
[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424: Parent: Received restart signal -- Restarting the server.
[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364: Child: All worker threads have exited.
別的內(nèi)容似乎都正常,除了SSL的警告外,一開始是搞不清楚狀況,以為是SSL配置有問題,就對(duì)SSL進(jìn)行了配置,但配置完以后,是不提示“Session Cache is not configured”了,但故障依然,我又繼續(xù)從APACHE的錯(cuò)誤日志中尋找線索,這次我用到的關(guān)鍵字是“MaxConnectionsPerChild”,這個(gè)配置可能很多人也不知道是什么,這是APACHE2.4才改成這樣的,原來叫MaxRequestsPerChild,意思是指子進(jìn)程的最大連接數(shù),當(dāng)達(dá)到設(shè)置值以后,APACHE就會(huì)結(jié)束當(dāng)前的子進(jìn)程,釋放內(nèi)存,再開啟新的子進(jìn)程,這個(gè)設(shè)置是在httpd-mpm.conf里面的,因?yàn)槭沁\(yùn)行在Windows環(huán)境下,所以對(duì)就的是WinNT MPM,原來的設(shè)置是:
ThreadsPerChild 250
MaxConnectionsPerChild 10000
都說為了防止內(nèi)存溢出,MaxConnectionsPerChild不要設(shè)成0,但可以考慮設(shè)成小的數(shù)值,于是我設(shè)成500,繼續(xù)測(cè)試,但不管我改成多少,APACHE還是依然不定時(shí)就掛了,依照網(wǎng)上有關(guān)的方法我全試了個(gè)遍,終究沒有解決這個(gè)問題,我都動(dòng)了重置系統(tǒng)再來的念頭了...
在解決這個(gè)問題的過程中,我發(fā)現(xiàn)系統(tǒng)運(yùn)行的非常非常慢,打開任務(wù)管理器一看,內(nèi)存居然占了3G多,才發(fā)現(xiàn)其實(shí)APACHE其實(shí)并沒有結(jié)束掉子進(jìn)程,內(nèi)存一直占用著并沒有得到翻譯,我好像得到點(diǎn)啟發(fā)了,看來這壓根跟MaxConnectionsPerChild的設(shè)置沒多大的聯(lián)系,而是在達(dá)到子進(jìn)程限定的線程數(shù)后,當(dāng)APACHE嘗試關(guān)閉當(dāng)前子進(jìn)程再重新開啟新的子進(jìn)程時(shí)發(fā)生了什么事情讓它這么做失敗了呢?我又打開了Windows的日志查看器,終于在應(yīng)用程序日志里找到一條跟APACHE出錯(cuò)同時(shí)產(chǎn)生的日志,內(nèi)容是“事件 ID ( 487 )的描述(在資源( Zend Optimizer+ )中)無法找到。”,依據(jù)這個(gè),我繼續(xù)在網(wǎng)上搜索有關(guān)這個(gè)錯(cuò)誤日志的相關(guān)內(nèi)容,但很可惜的是所有的解決辦法我都試過了,依然無果,最后我就干脆把zend關(guān)了,具體做法是,打開php.ini,把以下兩行注釋掉,問題終于解決.....
[zend]
zend_extension="D:phpextZendOptimizer.dll"
這樣APACHE終于可以運(yùn)行正常了。
本文由圓嘟嘟:http://www.yuandudu.com原創(chuàng)提供,版權(quán)所有,轉(zhuǎn)載請(qǐng)注明,謝謝!
圓嘟嘟選擇的主機(jī)搭配是Windows 2003 Server+Apache+PHP+Mysql,當(dāng)網(wǎng)站初步上線測(cè)試后,我在主機(jī)運(yùn)維方面遇到了很多問題,這里先說一個(gè)比較罕見,而且也讓我頭疼好幾天的問題,就是APACHE在運(yùn)行一段不定時(shí)的時(shí)間后,就自動(dòng)停止了,Windows系統(tǒng)日志顯示是:Apache2 服務(wù)因 1 (0x1) 服務(wù)性錯(cuò)誤而停止。而APACHE的error日志里最后的內(nèi)容如下:
[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358: Child: Process exiting because it reached MaxConnectionsPerChild. Signaling the parent to restart a new child process.[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424: Parent: Received restart signal -- Restarting the server.[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache][Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364: Child: All worker threads have exited.
別的內(nèi)容似乎都正常,除了SSL的警告外,一開始是搞不清楚狀況,以為是SSL配置有問題,就對(duì)SSL進(jìn)行了配置,但配置完以后,是不提示“Session Cache is not configured”了,但故障依然,我又繼續(xù)從APACHE的錯(cuò)誤日志中尋找線索,這次我用到的關(guān)鍵字是“MaxConnectionsPerChild”,這個(gè)配置可能很多人也不知道是什么,這是APACHE2.4才改成這樣的,原來叫MaxRequestsPerChild,意思是指子進(jìn)程的最大連接數(shù),當(dāng)達(dá)到設(shè)置值以后,APACHE就會(huì)結(jié)束當(dāng)前的子進(jìn)程,釋放內(nèi)存,再開啟新的子進(jìn)程,這個(gè)設(shè)置是在httpd-mpm.conf里面的,因?yàn)槭沁\(yùn)行在Windows環(huán)境下,所以對(duì)就的是WinNT MPM,原來的設(shè)置是:
ThreadsPerChild 250
MaxConnectionsPerChild 10000
都說為了防止內(nèi)存溢出,MaxConnectionsPerChild不要設(shè)成0,但可以考慮設(shè)成小的數(shù)值,于是我設(shè)成500,繼續(xù)測(cè)試,但不管我改成多少,APACHE還是依然不定時(shí)就掛了,依照網(wǎng)上有關(guān)的方法我全試了個(gè)遍,終究沒有解決這個(gè)問題,我都動(dòng)了重置系統(tǒng)再來的念頭了...
在解決這個(gè)問題的過程中,我發(fā)現(xiàn)系統(tǒng)運(yùn)行的非常非常慢,打開任務(wù)管理器一看,內(nèi)存居然占了3G多,才發(fā)現(xiàn)其實(shí)APACHE其實(shí)并沒有結(jié)束掉子進(jìn)程,內(nèi)存一直占用著并沒有得到翻譯,我好像得到點(diǎn)啟發(fā)了,看來這壓根跟MaxConnectionsPerChild的設(shè)置沒多大的聯(lián)系,而是在達(dá)到子進(jìn)程限定的線程數(shù)后,當(dāng)APACHE嘗試關(guān)閉當(dāng)前子進(jìn)程再重新開啟新的子進(jìn)程時(shí)發(fā)生了什么事情讓它這么做失敗了呢?我又打開了Windows的日志查看器,終于在應(yīng)用程序日志里找到一條跟APACHE出錯(cuò)同時(shí)產(chǎn)生的日志,內(nèi)容是“事件 ID ( 487 )的描述(在資源( Zend Optimizer+ )中)無法找到?!?,依據(jù)這個(gè),我繼續(xù)在網(wǎng)上搜索有關(guān)這個(gè)錯(cuò)誤日志的相關(guān)內(nèi)容,但很可惜的是所有的解決辦法我都試過了,依然無果,最后我就干脆把zend關(guān)了,具體做法是,打開php.ini,把以下兩行注釋掉,問題終于解決.....
[zend]zend_extension="D:phpextZendOptimizer.dll"
這樣APACHE終于可以運(yùn)行正常了。