我意外删除了一个虚拟主机文件。Apache2.4至今010-foo.conf
仍在运行。有没有办法查看不再存在的文件的实际配置(也许通过 apachectl 命令或其他方式)?reload
restart
答案1
如果您没有安装 mod_info,您可以使用它gcore
来将父 Apache 进程(pid 1 拥有的进程)内存转储到文件中,然后搜索“VirtualHost”或其他内容。我刚刚在我的系统上测试了它,它有效。您必须做一些事情,例如grep
剪切出您想要的内容并替换配置文件。
gcore <pid>
less core.<pid>
編輯 (來自 OP):
如果你没有gcore
,你可以通过 (Ubuntu) 安装它apt-get install gdb
。 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).