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

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

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

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

gcore <pid>
less core.<pid>

РЕДАКТИРОВАТЬ (из OP):

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

Если вы установили 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).