如何检查 apache 中启用的 mod_headers 和 mod_expires 模块
Posted
技术标签:
【中文标题】如何检查 apache 中启用的 mod_headers 和 mod_expires 模块【英文标题】:How to check mod_headers and mod_expires modules enabled in apache 【发布时间】:2012-02-06 08:24:54 【问题描述】:我想检查我的服务器中是否启用了 mod_headers 和 mod_expires 模块
有没有一种方法可以使用某些 php 函数列出 apache 启用/禁用的模块,就像我们使用 phpinfo(); 函数列出 php 信息一样?
【问题讨论】:
【参考方案1】:以上所有答案都是错误的。改为使用:
apachectl -t -D DUMP_MODULES
或
apachectl -M
【讨论】:
这些命令的 CentOS 和 RHOS 版本是/usr/sbin/httpd -t -DUMP_MODULES
和 /usr/sbin/httpd -M
@Craig London apachectl
是控制脚本,它也可以在 CentOS 中使用。
这应该是这个问题的可接受解决方案。【参考方案2】:
在 Debian 上:
user@machine:~$ /usr/sbin/apache2 -l
大多数 GNU/Linux 发行版:
user@machine:~$ /usr/sbin/httpd -l
Ubuntu:
user@machine:~$ ls /etc/apache2/mods-enabled
在 Mac OSX 上:
user@mymac:~$ httpd -l
在 Win 7(64 位)上:
C:\Users\myuser>"\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\httpd.exe" -l
在除 Windows 之外的所有终端窗口中尝试这些命令,Windows 将改为使用 CMD。
【讨论】:
在 FreeBSD(可能还有其他变体)上:user@machine:~$ apachectl -M
-l 只显示编译后的模块,如果模块是共享的呢??【参考方案3】:
在 Ubuntu 上,您可以在此处查看启用的模块列表,
/etc/apache2/mods-enabled
【讨论】:
并检查 /etc/apache2/mods-available 以获得可用模块的列表;又好又简单 是的,我会接受这个!【参考方案4】:某些版本的 PHP/Apache 在“加载的模块”下的 phpinfo() 中显示所有加载的模块。
Speeve 的回答显示在模块中编译(我的系统上的 x6):
echo system('/usr/sbin/apache2 -l');
您还需要查看已启用的模块(对我来说是 x36):
echo system('ls /etc/apache2/mods-enabled/');
要获取禁用模块的列表,请运行此命令,然后划掉所有启用的模块:
echo system('ls /etc/apache2/mods-available/');
【讨论】:
mods-enabled
目录非常特定于 Debian 和 Ubuntu,其他发行版和操作系统处理模块的方式不同。以上是关于如何检查 apache 中启用的 mod_headers 和 mod_expires 模块的主要内容,如果未能解决你的问题,请参考以下文章