我试图弄清楚什么是httpd设置的完整配置。所有的配置文件都分散在不同的文件中(/etc/httpd/conf.d,httpd.conf,各种mod文件)有办法列出最终的httpd配置吗?就像在一个文件中的整个运行设置配置?
eh57zj3b1#
正如arco 444所指出的,您可以使用apachectl -S来显示当前从SQL Server运行的VirtualServer的概述,并使用apachectl -M来显示所有当前加载的模块--我不知道有哪个工具可以显示解析的所有SQL Server的详细输出(以及它们被解析的顺序)在httpd启动时,但我建议你先熟悉一下httpd配置文件的一般结构:
apachectl -S
apachectl -M
特别注意你的问题:'main' apache配置文件位于/etc/httpd/conf/httpd.conf中(在CentOS 6中包含的repos中的默认httpd安装上的第221行区域中,我假设您正在使用基于您的post标签),'supplementary'配置文件位于/etc/httpd/conf.d中,并且需要显式地包含在主配置文件中。例如,如果您在httpd.conf文件中搜索术语“Include”,您将找到Include conf.d/*.conf行,它包含了conf.d文件夹中所有扩展名为.conf的文件-按字母顺序排列,因此如果可能的话,您需要熟悉配置文件解析的重要性。顺便说一句,如果你使用的是基于shell的文本编辑器,比如Vim,我建议你默认启用行号和语法高亮,这样冗长的配置文件就更容易解析和导航了-在vim的情况下,你可以在你的主目录中创建一个名为.vimrc的文件(或者附加到现有的目录中),然后添加以下行:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d
httpd.conf
Include
Include conf.d/*.conf
conf.d
.conf
.vimrc
set nu syntax on
byqmnocz2#
如Apache HTTP Server文档中所述如果设置了config define -DDUMP_CONFIG,mod_info将在服务器启动期间将预解析的配置转储到stdout。
httpd -DDUMP_CONFIG -k start
DUMP_CONFIG需要启用mod_info:a2enmod info!在Ubuntu中执行以下操作
DUMP_CONFIG
mod_info
a2enmod info
sudo apache2ctl -DDUMP_CONFIG
如果你想剥离行号做
sudo apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$"
或重定向到文件
sudo apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$" > /path/to/dump.conf
已知限制
mod_info通过阅读解析的配置而不是阅读原始配置文件来提供其信息。由于创建解析配置树的方式,存在一些限制:
dzjeubhm3#
请使用mod_info:http://httpd.apache.org/docs/2.2/mod/mod_info.html唯一的缺点是,如果你需要它来恢复一个删除的配置,并没有加载模块,它不会帮助你太多
amrnrhlw4#
我有一个脚本(唉,在Perl;原谅我,它的旧),它会删除配置文件,删除注解(默认情况下),并包括# FILE注解,这样你就可以弄清楚哪个文件包含你可能要找的东西。我用Apachehttpd编写了它,尽管它也用于OracleOHShttps://github.com/cameronkerrnz/scriptorium/blob/master/httpd-dump-config特别适用于使用SSH和diff/meld/等比较不同机器上的配置。范例:
# FILE
httpd-dump-config | grep -i -e '# FILE:' -e servername -e serveralias # FILE: /etc/httpd/conf/maintenance-curtain.conf # FILE: /etc/httpd/conf.d/proxy.conf # FILE: /etc/httpd/otago/secure-www.alias.conf # FILE: /etc/httpd/conf.d/proxy.conf ServerName www.otago.ac.nz ServerAlias otago.ac.nz
下面是一个使用diff(CLI)和meld(GUI)的例子:
diff -Bb <(httpd-dump-config) <(ssh root@revproxy2 httpd-dump-config) meld <(httpd-dump-config) <(ssh root@revproxy2 httpd-dump-config) &
这些年来,当我浏览一个包含数千行配置的配置文件时,我经常使用这个方法。
pbpqsu0x5#
当我不得不维护太多的Apache配置时,我为自己准备了一个脚本来完成您所要求的任务。它帮了我很多。
awk -v pc=$APCALL ' NR == 1 { if (pf != "") { print "### End of " pf " ###" } print "### " FILENAME " ###" pf = FILENAME } { if (pc || ( $1 !~ "^#" && $0 != "" ) ) { printf "%5d %s\n", NR, $0 } } $1 ~ /^Include(Optional)?$/ { $1 = "" system("for ACF in " $0 "; do apache_config.sh $ACF; done" ) } END { print "### End of " pf " ###" } ' "$@"
如果你想看到注解和空行,你可以设置APCALL环境变量,我基本上没有这样做。注意:它必须从ServerRoot执行。
0dxa2lsx6#
在/etc目录下有主配置文件夹。
cd /etc/httpd
有多个配置文件夹。
[root@server httpd]# ls conf conf.d conf.modules.d logs modules run state
查看递归操作的详细文件user -R。
[root@server httpd]# ls -R .: conf conf.d conf.modules.d logs modules run state ./conf: httpd.conf magic ./conf.d: autoindex.conf README userdir.conf welcome.conf ./conf.modules.d: 00-base.conf 00-brotli.conf 00-dav.conf 00-lua.conf 00-mpm.conf 00-optional.conf 00-proxy.conf 00-systemd.conf 01-cgi.conf 10-h2.conf 10-proxy_h2.conf README [root@server httpd]#
6条答案
按热度按时间eh57zj3b1#
正如arco 444所指出的,您可以使用
apachectl -S
来显示当前从SQL Server运行的VirtualServer的概述,并使用apachectl -M
来显示所有当前加载的模块--我不知道有哪个工具可以显示解析的所有SQL Server的详细输出(以及它们被解析的顺序)在httpd启动时,但我建议你先熟悉一下httpd配置文件的一般结构:特别注意你的问题:'main' apache配置文件位于
/etc/httpd/conf/httpd.conf
中(在CentOS 6中包含的repos中的默认httpd安装上的第221行区域中,我假设您正在使用基于您的post标签),'supplementary'配置文件位于/etc/httpd/conf.d
中,并且需要显式地包含在主配置文件中。例如,如果您在httpd.conf
文件中搜索术语“Include
”,您将找到Include conf.d/*.conf
行,它包含了conf.d
文件夹中所有扩展名为.conf
的文件-按字母顺序排列,因此如果可能的话,您需要熟悉配置文件解析的重要性。顺便说一句,如果你使用的是基于shell的文本编辑器,比如Vim,我建议你默认启用行号和语法高亮,这样冗长的配置文件就更容易解析和导航了-在vim的情况下,你可以在你的主目录中创建一个名为
.vimrc
的文件(或者附加到现有的目录中),然后添加以下行:byqmnocz2#
如Apache HTTP Server文档中所述
如果设置了config define -DDUMP_CONFIG,mod_info将在服务器启动期间将预解析的配置转储到stdout。
DUMP_CONFIG
需要启用mod_info
:a2enmod info
!在Ubuntu中执行以下操作
如果你想剥离行号做
或重定向到文件
已知限制
mod_info通过阅读解析的配置而不是阅读原始配置文件来提供其信息。由于创建解析配置树的方式,存在一些限制:
dzjeubhm3#
请使用mod_info:http://httpd.apache.org/docs/2.2/mod/mod_info.html
唯一的缺点是,如果你需要它来恢复一个删除的配置,并没有加载模块,它不会帮助你太多
amrnrhlw4#
我有一个脚本(唉,在Perl;原谅我,它的旧),它会删除配置文件,删除注解(默认情况下),并包括
# FILE
注解,这样你就可以弄清楚哪个文件包含你可能要找的东西。我用Apachehttpd编写了它,尽管它也用于OracleOHS
https://github.com/cameronkerrnz/scriptorium/blob/master/httpd-dump-config
特别适用于使用SSH和diff/meld/等比较不同机器上的配置。
范例:
下面是一个使用diff(CLI)和meld(GUI)的例子:
这些年来,当我浏览一个包含数千行配置的配置文件时,我经常使用这个方法。
pbpqsu0x5#
当我不得不维护太多的Apache配置时,我为自己准备了一个脚本来完成您所要求的任务。它帮了我很多。
如果你想看到注解和空行,你可以设置APCALL环境变量,我基本上没有这样做。注意:它必须从ServerRoot执行。
0dxa2lsx6#
在/etc目录下有主配置文件夹。
有多个配置文件夹。
查看递归操作的详细文件user -R。