熱點推薦:
您现在的位置: 電腦知識網 >> 電腦故障 >> 正文

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

2022-06-13   來源: 電腦故障 

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

  [Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: Process exiting because it reached MaxConnectionsPerChild Signaling the parent to restart a new child process

  [Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Parent: Received restart signal Restarting the server

  [Thu Mar :: ] [ssl:warn] [pid :tid ] AH: Init: Session Cache is not configured [hint: SSLSessionCache]

  [Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: All worker threads have exited

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

  ThreadsPerChild

  MaxConnectionsPerChild

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

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

  [zend]

  zend_extension="D:phpextZendOptimizerdll"

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

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

  [Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: Process exiting because it reached MaxConnectionsPerChild Signaling the parent to restart a new child process[Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Parent: Received restart signal Restarting the server[Thu Mar :: ] [ssl:warn] [pid :tid ] AH: Init: Session Cache is not configured [hint: SSLSessionCache][Thu Mar :: ] [mpm_winnt:notice] [pid :tid ] AH: Child: All worker threads have exited

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

  ThreadsPerChild

  MaxConnectionsPerChild

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

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

  [zend]zend_extension="D:phpextZendOptimizerdll"

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


From:http://tw.wingwit.com/Article/Fault/201311/10661.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.