阿帕奇小孩因不明原因死亡

很长一段时间,我在FreeBSD9.1(Apache 2.2)服务器上看到这样的错误

# dmesg pid 69320 (httpd), uid 80: exited on signal 11 pid 69307 (httpd), uid 80: exited on signal 11 pid 69416 (httpd), uid 80: exited on signal 10 pid 93318 (httpd), uid 80: exited on signal 11 pid 93295 (httpd), uid 80: exited on signal 11 pid 93289 (httpd), uid 80: exited on signal 11 pid 93965 (httpd), uid 80: exited on signal 11 pid 93993 (httpd), uid 80: exited on signal 11 

search后发现相关问题: http : //dready.org/blog/2010/07/04/httpd-exited-on-signal-11-solved/和其他人build议禁用mbstring。 我没有尝试这个,因为我需要在phpmyadmin中的mbstring。 http://www.php.net/manual/en/intro.mbstring.php我使用php5.3,今天升级到5.4.19,这个错误仍然存​​在。 其实Apache工作正常,似乎在退出后再次产卵的孩子。

哪里可以获得更精确的信息?

你可以find更多关于Apache主错误日志的信息,这个日志是httpd.conf中任何一个块之外定义的。

一个类似的问题,一个工作解决scheme,但不保证这是你的问题

你在这个博客文章中find的解决scheme描述了一个系统pipe理员谁尝试了一个问题,并解决了它。

为什么你认为这也是你的问题? 不能软件退出有几个原因?

mod_php,PHP作为CGI和php-fpm

如果真的你认为你的问题与PHP有关,你有三种方法使用PHP与Apache:

  • 与mod_php一样, 这个博客文章的作者。 当您启动Apache并准备执行脚本时,会加载PHP解释器
  • 作为CGI,就像传统和当前的共享主机环境一样,通常使用针对托pipe设施的修补SuEXEC,像suphp这样的小型需求。 每个脚本都是由PHP独立执行的,Apache获取输出并打印出来。
  • 与当前的专用主机和最前沿的共享主机环境的php-fpm。 PHP的FastCGI实现,带有PHP解释器的进程池已经加载到内存中,准备执行PHP代码。 select这个解决scheme会给你比CGI更好的performance。

如果您select使用php-fpm, 则Apache Wiki包含提示和安装说明。

一旦你在CGI模式或者php-fpm中切换了你的configuration文件,就像PHP代码在Apache之外执行一样:

  • 如果Apache仍然退出,stream程错误来自另一个原因,不涉及到PHP。
  • 如果Apache没问题,恭喜,这是一个mod_php问题,现在你没事了。