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

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

3
задан 13 October 2015 в 19:47
2 ответа

Если у вас не установлен 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 "текст для поиска" <файл дампа> , см. здесь для получения дополнительной информации об использовании grep для двоичных файлов.

5
ответ дан 3 December 2019 в 05:12

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

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

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

 -S
Показать настройки, как они проанализированы из файла конфигурации (в настоящее время отображаются только настройки виртуального хоста).
 
2
ответ дан 3 December 2019 в 05:12

Теги

Похожие вопросы