Лучший способ устранения неполадок Apache не запускается?

8

Недавно мы получили резервный сервер для зеркалирования всех наших данных на случай отказа основного сервера.

Я получил все данные о сайтах, обновленные с помощью rsync, и все настройки и базы данных apache обновлены. Обе машины работают на Ubuntu 9 (9.04 на основной, 9.10 на резервной копии).

Таким образом, на данный момент все кажется синхронизированным по большей части (все еще нужно выяснить синхронизацию пользователей), и я пытаюсь запустить Apache. я получил

* Starting web server apache2                                       [fail]

Больше ничего не указывает на то, в чем проблема.

Я знаю, что у меня недостаточно информации, чтобы ожидать решения от вас, ребята, поэтому я просто хотел бы знать, куда я могу пойти дальше для дальнейшего изучения этой проблемы. Будут ли какие-либо журналы ошибок для этого?

Спасибо!

LowGain
источник
до сих пор я нашел журналы, в которых говорилось: «Нет такого файла или каталога: mod_fcgid» - это хорошее начало
Lowgain

Ответы:

11

В некоторых конкретных случаях запись журнала не будет записана на диск - это может произойти, если, например, журналы не существуют, или Apache просто не может записать файлы журнала из-за проблем с разрешениями и т. Д. В таких случаях Лучший способ диагностировать ошибку - использовать `strace ':

[root@server ~]# strace -Ff apachectl start

Хотя вывод будет довольно многословным, если по какой-либо причине Apache не запустится, вы увидите write () в конце с содержимым того, что будет занесено в журналы, с причиной, по которой он не работает (если он не регистрирует) почему в журнале ошибок не удивляйтесь, если сообщение об ошибке содержит «Не удается открыть журнал» с указанием пути к журналу;).

Хотя, глядя на ваш комментарий относительно mod_fcgid, я бы посоветовал рассмотреть конфигурацию Apache и изучить ссылки на mod_fcgid - похоже, он пытается открыть буквальный файл "mod_fcgid", а не загружать модуль.

ОДС
источник
13

httpd -t проверит синтаксис ваших файлов конфигурации и выложит любые ошибки в терминал.

Игнасио Васкес-Абрамс
источник
2
Это было очень полезно. +1
Том Басби
Если это не сработает, попробуйте apachectl -t.
berry120
3

Любые ошибки должны быть напечатаны в журналах ошибок (часто в / var / log / http / error_logs. Grep для ErrorLog в вашем httpd.conf, чтобы узнать, где.

Я рекомендую использовать два окна. Сделайте 'tail -f error_log' в одном окне и используйте другое окно для запуска команды apachectl restart. После того, как вы найдете ошибку, обновите свой ответ здесь сообщением об ошибке.

Стефан Ласевский
источник
Первым шагом в поиске и устранении неисправностей всегда должно быть чтение журналов. Apache регистрирует почти каждое событие, которое проходит через него, поэтому вы должны быть переполнены данными для просмотра.
phuzion
2

У меня была похожая проблема с отладочным сервером Apache в Mac OS, поэтому я решил поделиться своим опытом и сэкономить время, когда я нашел следующее очень полезным:

  1. найти журналы:

apachectl -S | grep log

  1. в выводе вы найдете несколько файлов журналов, которые вы можете начать искать пример ошибок:

tail -n 15 /var/log/apache2/ssl_engine.log

Если существует более 1 файла журнала, продолжайте их, пока не найдете ошибку, приводящую к тому, что apache не запускается

talsibony
источник
0

Если ваш Apache не работает, проверьте порт Skype, в большинстве случаев Skype и Apache используют порт 80, и это означает, что Skype может быть причиной, по которой apache не может запуститься. остановите скайп, если он установлен.

Biffon Momanyi
источник