Apache報錯child pid xxx exit signal Segmentation fault (11)解決思路

2021年3月16日11:35:33 發表評論 3,214 ℃

前段時間把阿湯博客從虛擬主機遷移到了服務器,一同遷移的還有其他兩個網站,開始幾天沒啥問題,但是過了幾天,網站就會出現打不開的情況。

一開始沒在意,重啟了Apache服務就正常了,但是接下來一段時間頻繁出現無法打開的情況,有時候兩三天,有時候四五天。

出現故障的時候監聽Apache錯誤日志,發現大量的child pid xxx exit signal Segmentation fault (11)信息。

Apache報錯child pid xxx exit signal Segmentation fault (11)解決思路

但是此時測試80和443端口正常,訪問PHP探針頁面也可以正常訪問,但是就是頁面無法訪問,一些css、js文件訪問報404錯誤。

網上查了查,有人說child pid xxx exit signal Segmentation fault (11)是因為進程內存泄露導致的,需要調整Apache參數,MaxConnectionsPerChild不能設置為0 。

MaxConnectionsPerChild : 進程生命周期內,處理的最大請求數目。達到該數目后,進程將死掉。如果設置為0,表示沒有限制。該參數的意義在于,避免了可能存在的內存泄露帶來的系統問題。

但是我的Apache此參數并不是0,我也嘗試改小一些,測試了兩天還是會出現無法訪問的情況。

然后網上又找到一些可能會導致此問題的原因:

1. 使用mmcache模塊在linux x86-64上有問題

2. 由于php編譯安裝過程有問題,或者apache+php安裝完成后,PHP又重新編譯安裝過,同時apache也重新編譯就會產生這種現象.建議保留httpd.conf和相關配置文件后,重新安裝一遍apache+PHP,注意先后順序,如果還是會有這個提示,請更換php版本重裝。

3. php的模塊zend_extension和extension沖突。

4. 由于使用了APC造成的,這是這類op-code緩存優化軟件共同的問題.建議用最新版本試試(http://pecl.php.net/package/APC).一旦出現,只能重起apache。

5.  /tmp目錄文件太多,刪除后正常。

6.  配置模式為worker, 改為prefork。

7.  ZendOptimizer-3.3.0 與 jdk1.7.0沖突。

8.  web訪問的某些特殊文件造成的,檢查access_log可以看到,刪除文件。

9. PHP啟用了eaccelerator模塊導致。

10. apahce啟用了cache導致。

11. 配置文件模塊沖突之類的原因。

通過一條條排查,并沒有符合條件的原因。

由于故障屬于偶發,排查找原因非常困難,而且此類故障原因太多。

一開始想著通過站點監控接口回調,觸發腳本重啟Apache服務,但是發現每次故障監控返回的都是狀態200,沒有觸發監控。

于是就想著換nginx試試,畢竟好多年沒用過Apache,對一些Apache報錯和問題有些陌生了。

其實阿湯博客遷移到服務器的時候,就打算用nginx的,但是想著要去重寫幾個網站偽靜態太麻煩就放棄了,但是沒想到省了一時的麻煩,換來后面無休止的折騰。

然后花了半天時間把偽靜態規則換成nginx的,然后就是替換ssl證書,本地測試成功以后,線上進行替換操作。

Apache偽靜態轉nginx偽靜態,網上有很多工具,但是有些轉換工具還是有問題的,還是需要本地多測試,不要盲目在線上操作。

WordPress的nginx偽靜態規則還是比較簡單的,網上有兩種方案,這里貼一下我使用的WordPress的nginx偽靜態規則:

if ($http_host !~ "^www.maowutv.com$"){
    rewrite ^(.*)$ http://www.maowutv.com/$1 redirect;
}
try_files $uri $uri/ /index.php?$args;
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

切換到nginx運行到現在已經一周多了,一切穩定,未出現過無法訪問的情況。

【騰訊云】云服務器、云數據庫、COS、CDN、短信等云產品特惠熱賣中

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: