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

Опции для вывода списка конфигурации Apache vhost (с высоты птичьего полета)

Я использую Ubuntu Linux с Apache2 и несколькими vhosts, расположенными в /etc/apache2/sites-available и символически привязан (активирован) из /etc/apache2/sites-enabled. Настройка по умолчанию в Ubuntu.

Я хотел бы знать, доступны ли для Apache общие инструменты для перечисления всей информации о vhost:

В этих списках я бы хотел видеть:

Очевидно, я мог бы сделать несколько grepping, sed-ing и awking, чтобы получить эту информацию, но я совершенно уверен, что это было сделано правильно где-то раньше :)

Ближайший из известных мне инструментов - apachectl -S.

Эта команда выведет список всех виртуальных хостов, определенных в вашей текущей конфигурации, независимо от того, запущен Apache или нет. Информация включает IP-адреса, порты, значение директивы ServerName, имена файлов конфигурации и vhost по умолчанию.

Это общий инструмент Apache, который будет доступен в Redhat / CentOS, Mac OS X, Solaris и любом другом Unix, который вам нравится, поэтому он не знает о доступных сайтах на основе Debian, доступных сайтах, доступных модах и каталоги с включенными модами.

apachectl -S не перечисляет директиву DocumentRoot, поскольку она не является обязательной и может отсутствовать в некоторых vhosts. Он также не перечисляет какие-либо директивы ServerAlias, потому что их может быть любое количество. Поскольку они (как и директива ServerName) могут содержать подстановочные знаки, перечисление доменов может оказаться проблематичным.

apachectl -t выполнит проверку синтаксиса.

В зависимости от вашей версии вам, возможно, придется использовать apache2ctl -S.

Я думаю, что список доступных и включенных сайтов можно возобновить ls в соответствующем каталоге.

Это может показаться глупым, но подумайте, что вы не можете доверять файлу по его имени: его содержимое может содержать несколько VirtualHosts.

Однако, если вы хотите показать текущую конфигурацию, используемую Apache, вы можете посмотреть на -S флаг.

Если вы вошли в систему как root, эта командная строка должна быть хорошим началом:

# source /etc/apache2/envvars && apache2 -S

Источник: man apache2