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

Как отлаживать Apache 404?

Каждый раз, когда я настраивал новый httpd установка, борюсь с начальнымVirtualHost / mod_proxy_fcgi / др. конфигурация.

Когда я настраиваю свои виртуальные хосты и получаю 404, я всегда обращаюсь к журналам только для того, чтобы найти:

Поэтому я всегда делаю одно и то же: методом проб и ошибок.

Могу ли я как-нибудь указать Apache регистрировать каждый шаг, который он пробовал, прежде чем выдать ошибку 404?

Что-то вроде:

То есть что-то полезный?

Первое, что нужно проверить, это вывод apachectl -S. Он показывает, какой IP-адрес прослушивает какой порт и для какого виртуального хоста. И он также показывает файл и номер строки, в которой он был настроен.

Затем вы можете добавить GlobalLog директиву для всех виртуальных хостов и увеличьте LogLevel во время отладки, сохраняя при этом стандартные файлы CustomLog.

Например, создать файл /etc/apache2/conf-available/temp_debug.conf :

LogLevel trace4
GlobalLog ${APACHE_LOG_DIR}/debug.log "%v:%p %h %l %u %t \"%r\" %>s %O file=%f"

# http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats
# %v    The canonical ServerName of the server serving the request.
# %f    Filename.

Включите его с помощью

sudo a2enconf temp_debug && sudo apachectl graceful

Когда закончите, отключите дополнительное ведение журнала с помощью

sudo a2disconf temp_debug && sudo apachectl graceful

Информация о трассировке попадет в ваш журнал ошибок, где также будет указано, какой уровень трассировки был необходим для записи в журнал.

Да. Возможны подходы к решению вашей проблемы. На мой взгляд, лучше всего настраивать разные ErrorLog и CustomLog директив на виртуальный хост с сохранением в независимые файлы. Другой - настроить ваш журнал, вставив виртуальный хост с использованием масок LogFormat (например,% v для входа в соответствующий виртуальный хост). Проблема с этим методом заключается в том, что если вы используете какой-то анализатор журналов Apache, вы можете столкнуться с какой-то проблемой или вам придется настроить его в соответствии с новым шаблоном.

С уважением.