Как просмотреть полную конфигурацию httpd?

Я пытаюсь выяснить, что такое полная полная конфигурация установки httpd.

все файлы конфигураций разбросаны по разным файлам (/etc/httpd / conf.d, httpd.conf, различные конфигурации mod)

есть ли способ перечислить окончательную конфигурацию httpd?
Как вся запущенная конфигурация установки в одном файле?

3 ответов


как отметил arco444, вы можете использовать apachectl -S для отображения обзора VirtualHosts, запущенных в настоящее время из конфигураций, и apachectl -M для отображения всех загруженных модулей-я не знаю инструмента для отображения подробного вывода всех проанализированных конфигураций (и в каком порядке они были проанализированы) при запуске httpd, но я бы рекомендовал вам ознакомиться с общая структура конфигурационных файлов httpd:

особенно обратите внимание на ваш вопрос: "основной" файл конфигурации apache находится в /etc/httpd/conf/httpd.conf (в области строки 221 на установке httpd по умолчанию из репозиториев, включенных в CentOS 6, которые, я полагаю, вы используете на основе ваших тегов post), а "дополнительные" файлы конфигурации расположены в /etc/httpd/conf.d и требуют, чтобы быть включено явно в основной файл конфигурации. Например, если вы ищете httpd.conf файл для термина'Include' вы найдете строку Include conf.d/*.conf что включает в себя все файлы расширений .conf в подпапке conf.d - в алфавитном порядке, поэтому вы захотите ознакомиться с важностью синтаксического анализа файла конфигурации в какой-то момент, если это возможно.

в стороне, если вы используете текстовый редактор на основе оболочки, такой как vim, я предлагаю вам включить нумерацию строк и подсветка синтаксиса по умолчанию, так что такие длинные конфигурационные файлы немного легче анализировать и перемещаться - в случае vim вы бы сделали это, создав файл в своем домашнем каталоге под названием .vimrc (или добавьте к существующему) и добавьте следующие строки:

set nu
syntax on

пожалуйста, используйте mod_info для этой цели: http://httpd.apache.org/docs/2.2/mod/mod_info.html

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


как описано в документация по HTTP-серверу Apache

если config define-DDUMP_CONFIG установлен, mod_info сбросит предварительно проанализированная конфигурация для stdout во время запуска сервера.

httpd -DDUMP_CONFIG -k start

DUMP_CONFIG требует mod_infoвключено: a2enmod info!

в Ubuntu сделайте следующее

sudo apache2ctl -DDUMP_CONFIG

если вы хотите лишить номера строк, сделайте

sudo apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$"

или перенаправить на файл

sudo apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$" > /path/to/dump.conf

Ограничения

mod_info предоставляет свою информацию, читая проанализированную конфигурацию, вместо чтения исходного файла конфигурации. Есть несколько ограничения в результате того, как анализируется дерево конфигурации создано:

  • директивы, которые выполняются немедленно, а не хранятся в анализируемой конфигурации не указаны. Они включают символы, LoadModule и LoadFile.
  • директивы, которые управляют самим файлом конфигурации, такие как Include, и не перечислены, но включены директивы конфигурации.
  • комментарии не отображаются. (Это можно считать особенностью.)
  • директивы конфигурации .файлы htaccess не перечислены (поскольку они не являются частью конфигурации постоянного сервера).
  • директивы контейнера как перечислены нормально, но mod_info не может определить номер строки для закрытия .
  • директивы, созданные сторонними модулями, такими как mod_perl, могут не отображаться.