我正在使用Ubuntu Linux和Apache2以及几个虚拟主机,它们位于/etc/apache2/sites-enabled并且从/etc/apache2/sites-enabled symlinked(激活)。 Ubuntu上的默认设置。
我想知道是否有可用于Apache的通用工具列出所有的虚拟主机信息:
在这些列表中,我想看到:
很明显,我可以做一些诡计,sed-ing和awking来获取这些信息,但是我确信这已经在某处正确地完成了:)
我所知道的最接近的工具是apachectl -S 。
此命令将列出当前configuration中定义的所有虚拟主机,而不pipeApache是否正在运行。 信息包括IP地址,端口,ServerName指令的值,configuration文件名以及哪个vhost是默认的。
这是一个通用的Apache工具,可以在Redhat / CentOS,Mac OS X,Solaris以及任何其他你喜欢的Unix上使用,因此它不知道基于Debian的站点 – 可用,站点使能,mods可用启用mods的目录。
apachectl -S没有列出DocumentRoot指令,因为它不是必需的指令,可能不存在于某些虚拟主机中。 它也没有列出任何ServerAlias指令,因为可以有任意数量的指令。 由于他们(以及ServerName指令)可以包含通配符,所以列出域可能会很麻烦。
apachectl -t会做一个语法检查。
根据你的版本,你可能不得不使用apache2ctl -S 。
我认为列出可用和启用的网站恢复在正确的目录中使用ls 。
这可能听起来很愚蠢,但是认为你不能相信文件的名字:它的内容可能包含多个虚拟主机。
但是,如果要显示Apache使用的当前configuration,则可能需要查看-S标志。
以root身份login,该命令行应该是一个很好的开始:
# source /etc/apache2/envvars && apache2 -S
资料来源: man apache2