Windows+APACHE服務經常故障怎麼辦

來源:互聯網
上載者:User

   圓嘟嘟選擇的主機搭配是Windows 2003 Server+Apache+PHP+Mysql,當網站初步上線測試後,我在主機營運方面遇到了很多問題,這裡先說一個比較罕見,而且也讓我頭疼好幾天的問題,就是APACHE在運行一段不定時的時間後,就自動停止了,Windows系統日誌顯示是:Apache2 服務因 1 (0x1) 服務性錯誤而停止。而APACHE的error日誌裡最後的內容如下:

  [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.

  別的內容似乎都正常,除了SSL的警告外,一開始是搞不清楚狀況,以為是SSL配置有問題,就對SSL進行了配置,但配置完以後,是不提示“Session Cache is not configured”了,但故障依然,我又繼續從APACHE的錯誤記錄檔中尋找線索,這次我用到的關鍵字是“MaxConnectionsPerChild”,這個配置可能很多人也不知道是什麼,這是APACHE2.4才改成這樣的,原來叫MaxRequestsPerChild,意思是指子進程的最大串連數,當達到設定值以後,APACHE就會結束當前的子進程,釋放記憶體,再開啟新的子進程,這個設定是在httpd-mpm.conf裡面的,因為是運行在Windows環境下,所以對就的是WinNT MPM,原來的設定是:

  ThreadsPerChild 250

  MaxConnectionsPerChild 10000

  都說為了防止記憶體溢出,MaxConnectionsPerChild不要設成0,但可以考慮設成小的數值,於是我設成500,繼續測試,但不管我改成多少,APACHE還是依然不定時就掛了,依照網上有關的方法我全試了個遍,終究沒有解決這個問題,我都動了重設系統再來的念頭了...

  在解決這個問題的過程中,我發現系統啟動並執行非常非常慢,開啟工作管理員一看,記憶體居然佔了3G多,才發現其實APACHE其實並沒有結束掉子進程,記憶體一直佔用著並沒有得到翻譯,我好像得到點啟發了,看來這壓根跟MaxConnectionsPerChild的設定沒多大的聯絡,而是在達到子進程限定的線程數後,當APACHE嘗試關閉當前子進程再重新開啟新的子進程時發生了什麼事情讓它這麼做失敗了呢?我又開啟了Windows的日誌查看器,終於在應用程式記錄檔裡找到一條跟APACHE出錯同時產生的日誌,內容是“事件 ID ( 487 )的描述(在資源( Zend Optimizer+ )中)無法找到。”,依據這個,我繼續在網上搜尋有關這個錯誤記錄檔的相關內容,但很可惜的是所有的解決辦法我都試過了,依然無果,最後我就乾脆把zend關了,具體做法是,開啟php.ini,把以下兩行注釋掉,問題終於解決.....

  [zend]

  zend_extension="D:phpextZendOptimizer.dll"

  這樣APACHE終於可以運行正常了。

  本文由圓嘟嘟:http://www.yuandudu.com原創提供,著作權,轉載請註明,謝謝!

  圓嘟嘟選擇的主機搭配是Windows 2003 Server+Apache+PHP+Mysql,當網站初步上線測試後,我在主機營運方面遇到了很多問題,這裡先說一個比較罕見,而且也讓我頭疼好幾天的問題,就是APACHE在運行一段不定時的時間後,就自動停止了,Windows系統日誌顯示是:Apache2 服務因 1 (0x1) 服務性錯誤而停止。而APACHE的error日誌裡最後的內容如下:

  [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.

  別的內容似乎都正常,除了SSL的警告外,一開始是搞不清楚狀況,以為是SSL配置有問題,就對SSL進行了配置,但配置完以後,是不提示“Session Cache is not configured”了,但故障依然,我又繼續從APACHE的錯誤記錄檔中尋找線索,這次我用到的關鍵字是“MaxConnectionsPerChild”,這個配置可能很多人也不知道是什麼,這是APACHE2.4才改成這樣的,原來叫MaxRequestsPerChild,意思是指子進程的最大串連數,當達到設定值以後,APACHE就會結束當前的子進程,釋放記憶體,再開啟新的子進程,這個設定是在httpd-mpm.conf裡面的,因為是運行在Windows環境下,所以對就的是WinNT MPM,原來的設定是:

  ThreadsPerChild 250

  MaxConnectionsPerChild 10000

  都說為了防止記憶體溢出,MaxConnectionsPerChild不要設成0,但可以考慮設成小的數值,於是我設成500,繼續測試,但不管我改成多少,APACHE還是依然不定時就掛了,依照網上有關的方法我全試了個遍,終究沒有解決這個問題,我都動了重設系統再來的念頭了...

  在解決這個問題的過程中,我發現系統啟動並執行非常非常慢,開啟工作管理員一看,記憶體居然佔了3G多,才發現其實APACHE其實並沒有結束掉子進程,記憶體一直佔用著並沒有得到翻譯,我好像得到點啟發了,看來這壓根跟MaxConnectionsPerChild的設定沒多大的聯絡,而是在達到子進程限定的線程數後,當APACHE嘗試關閉當前子進程再重新開啟新的子進程時發生了什麼事情讓它這麼做失敗了呢?我又開啟了Windows的日誌查看器,終於在應用程式記錄檔裡找到一條跟APACHE出錯同時產生的日誌,內容是“事件 ID ( 487 )的描述(在資源( Zend Optimizer+ )中)無法找到。”,依據這個,我繼續在網上搜尋有關這個錯誤記錄檔的相關內容,但很可惜的是所有的解決辦法我都試過了,依然無果,最後我就乾脆把zend關了,具體做法是,開啟php.ini,把以下兩行注釋掉,問題終於解決.....

  [zend]zend_extension="D:phpextZendOptimizer.dll"

  這樣APACHE終於可以運行正常了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.