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

Ошибка сегментации configtest в Apache2

По какой-то причине мне удалось довольно сильно испортить Apache (Ubuntu 12.04). Приведенные ниже выходные данные жалуются на сбой configtest и ошибку сегментации. Однако я ничего не могу найти в /var/log/apache2/error.log. Как я могу отладить этот "конфигтест"?

jeroen@jeroen-ubuntu:~$ sudo service apache2 stop
 * Stopping web server apache2                                                  
 * The apache2 configtest failed, so we are trying to kill it manually. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!
 ... waiting                                                             [ OK ]
jeroen@jeroen-ubuntu:~$ sudo service apache2 start
 * Starting web server apache2
Segmentation fault
Action 'start' failed.
The Apache error log may have more information.
                                                                     [fail]

Изменить: проблема связана с загрузкой модуля apache2. Я обнаружил некоторые следы проблемы в/var/log/kern.log:

Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367260] show_signal_msg: 9 callbacks suppressed
Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367264] apache2[20784]: segfault at b638f7b5 ip b638f7b5 sp b5ed42e0 error 14
Mar 14 20:44:27 jeroen-ubuntu kernel: [13267.367268] apache2[20786]: segfault at b638f7b5 ip b638f7b5 sp b383f2e0 error 14

Я использую этот модуль много лет, и он всегда был стабильным. Я недавно устанавливал некоторые бэкпорты из репозиториев PPA, подозреваю, что один из этих пакетов сломал мою систему ...

Если configtest провалился, паниковать не о чем. Это в основном означает, что в одном из ваших файлов конфигурации Apache что-то не так. Итак, это мой краткий список того, что вам следует делать:

  1. Вы редактировали файл конфигурации Apache до того, как это произошло? Который из? Куда? Можете ли вы восстановить для него резервную копию или заведомо исправный конфиг? В принципе, конфиг я бы перебирал мелкой гребешкой. Причиной может быть такая простая вещь, как орфографическая ошибка в параметре конфигурации. А может файл поврежден?
  2. Было ли это в основной конфигурации вроде /etc/apache2/apache2.conf или что-то в /etc/apache2/sites-enabled? Если бы он был в основном файле конфигурации, он бы отображался в error.log чаще да, чем нет? Если нет, может быть, в отдельном журнале подключены к вашим виртуальным хостам?
  3. Какая у вас конфигурация виртуального хоста при запуске sudo apachectl -S? Это может дать еще один ключ к пониманию того, какие конфигурации использует Apache.
  4. Вы добавляли или пытались добавить какие-либо модули в Apache в прошлом? Вы можете отключить их? В некоторых комментариях вы указываете, что причиной может быть модуль. Не женитесь на заменяемом программном обеспечении. Просто удалите его и переустановите модуль. Может быть поврежден.
  5. Абсолютно наихудший сценарий, если только у вас нет невероятно уникальной установки Apache - я бы рекомендовал сделать резервную копию ваших конфигураций в /etc/apache2- удалить Apache из вашей системы и переустановить его заново. Затем посмотрите, работает ли эта чистая установка, и если да, то повторите настройку на основе файлов резервных копий.

Спасибо, проблема возникла сразу после установки PHP 7 и добавления нескольких пакетов.

После небольшого исследования обнаружил /etc/apache2/mods-enabled/php5.load который указывал на пакет, который был либо удален ранее, либо не смог загрузить при запуске apache. Просто удалил содержимое и все заработало.