無需設定檔即可取得虛擬主機配置

無需設定檔即可取得虛擬主機配置

我不小心刪除了虛擬主機檔案010-foo.conf。 Apache2.4reload至今仍在運作restart。有沒有辦法查看不再存在的檔案的實際配置(也許透過 apachectl 命令或其他命令)?

答案1

如果您沒有安裝 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 處理二進位檔案的詳細資訊。

答案2

如果你安裝了mod_info,你可以用它來列印你的伺服器配置。就我而言,我可以看到 Apache 所看到的整個配置,包括所有 VirtualHost。

如果您尚未mod_info安裝並運行,則您可能無法使用此資訊。

您也可以使用命令列查看一些 VirtualHost 信息httpd-S。它並不完整,但總比什麼都沒有好:

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

相關內容