Apache报错child pid xxx exit signal Segmentation fault (11)解决思路

2021年3月16日11:35:33 发表评论 1,582 ℃

前段时间把阿汤博客从虚拟主机迁移到了服务器,一同迁移的还有其他两个网站,开始几天没啥问题,但是过了几天,网站就会出现打不开的情况。

一开始没在意,重启了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.amd5.cn$"){
    rewrite ^(.*)$ http://www.amd5.cn/$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: