AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 733961
Accepted
Pyromancer
Pyromancer
Asked: 2015-11-05 11:50:12 +0800 CST2015-11-05 11:50:12 +0800 CST 2015-11-05 11:50:12 +0800 CST

是否有命令让 Apache 从内存中显示其运行配置?

  • 772

有没有办法让 Apache Web 服务器从内存中显示它当前正在运行的配置,即不是通过解析配置目录中的文件?

我刚刚设法不小心覆盖了服务器上的 vhost 配置(是的,我知道,应该有备份!),虽然我可以很容易地重建它(非常新的服务器,如此简单的配置,因此没有备份然而 - 那是明天的任务),想知道是否有任何方法可以让 Apache 显示其实时运行的配置,而不仅仅是解析文件(就像 httpd -S 似乎做的那样)。

已尝试在 ServerFault 上进行谷歌搜索和搜索,但未找到任何内容。我可以想象随着时间的推移,这可能会节省一些人的培根。:)

virtualhost
  • 1 1 个回答
  • 3535 Views

1 个回答

  • Voted
  1. Best Answer
    Froggiz
    2015-12-17T05:40:41+08:002015-12-17T05:40:41+08:00

    这是从内存中恢复 Apache2 配置的方法:


    1. 获取此 serverfault 线程中提到的 dump-all-memory-of-pid.sh 脚本。

    将linux 进程的内存转储到文件

    #!/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
    
    • 把它放在一个文件中(例如“dump-all-memory-of-pid.sh”)并使其可执行
    • 用法:./dump-all-memory-of-pid.sh [pid]
    • 输出打印到具有以下名称的文件:pid-startaddress-stopaddress.dump
    • 依赖项:gdb

    1. 获取你的 apache 进程的 pid

      pgrep -uroot apache2
      

    1. 转储进程的内存

      mkdir /tmp/apache_dump && cd /tmp/apache_dump
      sh /path/to/dump-all-memory-of-pid.sh <PID>
      

    1. grep 所有转储文件,以获得您希望在 apache 配置文件中的内容。

      grep DocumentRoot *
      

    1. 在 vim 中打开匹配的转储文件并搜索字符串。

      vim 24374-7f159d56c000-7f159d72c000.dump
      

    通过键入“/”进行搜索,例如“/DocumentRoot”,然后简单地复制出您想要的文本。


    来源:http ://forums.whirlpool.net.au/archive/2189742

    • 6

相关问题

  • 阿帕奇虚拟主机

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 中的动态虚拟主机

  • VirtualHost / NameVirtualHost 背后的逻辑是什么

  • 如何设置 Jetty 6 和 Jboss 4.0.5 虚拟主机?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve