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