Назад | Перейти на главную страницу

Ребенок Apache умер по неизвестной причине

Давно видел такие ошибки на сервере 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

После поиска была обнаружена связанная проблема: http://dready.org/blog/2010/07/04/httpd-exited-on-signal-11-solved/ и пара других рекомендует отключить mbstring. Я не пробовал этого, потому что мне нужна mbstring в phpmyadmin. http://www.php.net/manual/en/intro.mbstring.php Я использовал php5.3 и сегодня обновился до 5.4.19, и эта ошибка все еще существует. На самом деле Apache работает нормально и кажется, что после выхода снова появляется ребенок.

Где получить более точную информацию?

Вы можете найти дополнительную информацию в основном журнале ошибок Apache, который определен в httpd.conf вне любого блока.

Аналогичная проблема, рабочее решение, но без гарантии, это ваша проблема

Решение, которое вы нашли в это сообщение в блоге описывает одного системного администратора, который экспериментировал с проблемой и решил ее.

Почему вы думаете, что это тоже ваша проблема? Программное обеспечение не может прекратить работу по нескольким причинам?

mod_php, PHP как CGI и php-fpm

Если вы действительно думаете, что ваша проблема связана с PHP, у вас есть три способа использовать PHP с Apache:

  • с mod_php, как и это сообщение в блоге автор. Интерпретатор PHP загружается при запуске Apache и готов к выполнению скрипта.
  • как CGI, как в устаревших и текущих средах общего хостинга, как правило, с пропатченным SuEXEC для средств хостинга, например suphp для небольших нужд. Каждый скрипт независимо выполняется PHP, Apache получает результат и распечатывает его.
  • с php-fpm для текущего выделенного хостинга и передовых сред общего хостинга. Реализация FastCGI для PHP с пулом процессов с уже загруженным в память интерпретатором PHP, готовым к выполнению кода PHP. Выбор этого решения даст вам лучшую производительность, чем CGI.

Если вы решите использовать php-fpm, вики Apache содержит советы и указания по установке.

После того, как вы переключили свою конфигурацию в режим CGI или php-fpm, поскольку код PHP выполняется вне Apache:

  • Если Apache по-прежнему завершает работу, ошибки процессов происходят по другой причине, не связанной с PHP.
  • Если с Apache все в порядке, поздравляю, это была проблема с mod_php, теперь все в порядке.