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

Как узнать, какой httpd.conf apache использует во время выполнения

Я всегда изо всех сил пытался найти это: как вы можете спросить apache, какой файл httpd.conf он использовал для загрузки?

Это становится трудным, если у вас работает несколько экземпляров apache или если вы долгое время не смотрели на машину, а на диске много файлов httpd.conf!

Большое спасибо :)

apache2ctl -V | grep SERVER_CONFIG_FILE

/usr/sbin/apache2 -V предоставляет эту информацию и немного больше :)

В Йосемити я обнаружил, что это было /Library/Server/Web/Config/apache2/httpd_server_app.conf

Даже если apachectl -V | grep .conf

Дает -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

По состоянию на 2016 год (Ошибка 59376), из Apache 2.4.23 и далее доступна опция, предназначенная для этой цели.

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

$ apachectl -t -D DUMP_INCLUDES

Included configuration files:
  (*) /etc/httpd/conf/httpd.conf
    (21) /etc/httpd/conf.d/elasticbeanstalk_log.conf
    (21) /etc/httpd/conf.d/healthd.conf
    (21) /etc/httpd/conf.d/ssl.conf
    (22) /etc/httpd/conf.d/elasticbeanstalk/00_application.conf
    (22) /etc/httpd/conf.d/elasticbeanstalk/01_gzip.conf
    (22) /etc/httpd/conf.d/elasticbeanstalk/02_static.conf

Или,

$ httpd -t -D DUMP_INCLUDES

Для RHEL или Centos сначала найдите запущенный процесс Apache ...

ps ax | grep httpd

Обратите внимание на путь на выходе. Для меня это...

/opt/rh/httpd24/root/usr/sbin/httpd

Затем вы можете использовать параметр -V с этим путем, чтобы получить путь к конфигурации ...

/opt/rh/httpd24/root/usr/sbin/httpd -V

Среди выходных данных вы должны увидеть абсолютный путь для HTTPD_ROOT, а также относительный путь для SERVER_CONFIG_FILE. Соедините этот абсолютный путь и относительный путь вместе, и у вас будет расположение файла конфигурации.

Кредит: https://stackoverflow.com/a/22900993/861826