Как просмотреть полную конфигурацию httpd?
Я пытаюсь выяснить, что такое полная полная конфигурация установки httpd.
все файлы конфигураций разбросаны по разным файлам (/etc/httpd / conf.d, httpd.conf, различные конфигурации mod)
есть ли способ перечислить окончательную конфигурацию httpd?
Как вся запущенная конфигурация установки в одном файле?
3 ответов
как отметил arco444, вы можете использовать apachectl -S
для отображения обзора VirtualHosts, запущенных в настоящее время из конфигураций, и apachectl -M
для отображения всех загруженных модулей-я не знаю инструмента для отображения подробного вывода всех проанализированных конфигураций (и в каком порядке они были проанализированы) при запуске httpd, но я бы рекомендовал вам ознакомиться с общая структура конфигурационных файлов httpd:
- Apache 2.2 - Общая структура конфигурационных файлов httpd
- Apache 2.4-общая структура конфигурационных файлов 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, могут не отображаться.