Я случайно удалил файл виртуальных хостов 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).