Получить конфигурацию виртуального хоста без файла конфигурации

Получить конфигурацию виртуального хоста без файла конфигурации

Я случайно удалил файл виртуальных хостов 010-foo.conf. Apache2.4 все еще работает без него reloadили restartдо сих пор. Есть ли способ увидеть фактическую конфигурацию файла, которого больше нет (может быть, через команду apachectl или что-то еще)?

решение1

Если у вас не установлен mod_info, вы можете использовать его gcoreдля дампа памяти родительского процесса Apache (который принадлежит pid 1) в файл, а затем выполнить поиск по "VirtualHost" или что-то в этом роде. Я только что проверил это на своей системе, и это работает. Вам придется повозиться с чем-то вроде того, grepчтобы вырезать то, что вам нужно, и заменить файл конфигурации.

gcore <pid>
less core.<pid>

EDIT (из OP):

Если у вас нет gcore, вы можете установить его через apt-get install gdb(Ubuntu). Файл pid обычно находится в /var/run/apache2/apache2.pid. Затем вы можете выполнить команды, указанные выше, и выполнить поиск двоичных файлов, например, с помощью grep -obUaP "text to search" <dump file>, см.здесьдля получения дополнительной информации об использовании grep для двоичных файлов.

решение2

Если вы установили mod_info, вы можетеиспользуйте его для печати конфигурации вашего сервера. В моем случае я могу видеть всю конфигурацию так, как ее видит Apache, включая все VirtualHosts.

Если у вас еще не mod_infoустановлено и не работает приложение, эта информация может быть вам недоступна.

Вы также можете просмотреть некоторую информацию о VirtualHost в командной строке, используяhttpd -S. Это не полный текст, но это лучше, чем ничего:

-S
Show the settings as parsed from the config file (currently only shows the virtualhost settings).

Связанный контент