Pyr*_*cer 5 virtualhost apache-2.4
有没有办法让 Apache Web 服务器从内存中显示它当前正在运行的配置,即不是通过解析配置目录中的文件?
我刚刚设法不小心覆盖了服务器上的 vhost 配置(是的,我知道,应该有备份!),虽然我可以很容易地重建它(非常新的服务器,配置如此简单,因此没有备份然而 - 那是明天的任务),想知道是否有任何方法可以让 Apache 显示其实时运行的配置,而不仅仅是解析文件(就像 httpd -S 似乎所做的那样)。
在 ServerFault 上尝试谷歌搜索和搜索,但没有找到任何东西。我可以想象随着时间的推移,这可能会节省一些人的培根。:)
这是从内存中恢复 Apache2 配置的方法:
#!/bin/bash
grep rw-p /proc/$1/maps | sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/\1 \2/p' | while read start stop; do gdb --batch --pid $1 -ex "dump memory $1-$start-$stop.dump 0x$start 0x$stop"; done
Run Code Online (Sandbox Code Playgroud)
./dump-all-memory-of-pid.sh [pid]
pid-startaddress-stopaddress.dump
gdb
获取你的 apache 进程的 pid
pgrep -uroot apache2
Run Code Online (Sandbox Code Playgroud)转储进程的内存
mkdir /tmp/apache_dump && cd /tmp/apache_dump
sh /path/to/dump-all-memory-of-pid.sh <PID>
Run Code Online (Sandbox Code Playgroud)grep 将所有转储文件用于您希望在 apache 配置文件中的内容。
grep DocumentRoot *
Run Code Online (Sandbox Code Playgroud)在 vim 中打开匹配的转储文件并搜索字符串。
vim 24374-7f159d56c000-7f159d72c000.dump
Run Code Online (Sandbox Code Playgroud)通过键入“/”进行搜索,例如“/DocumentRoot”,然后简单地复制出您想要的文本。
来源:http : //forums.whirlpool.net.au/archive/2189742
归档时间: |
|
查看次数: |
2835 次 |
最近记录: |