如何检查 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 模块的主要内容,如果未能解决你的问题,请参考以下文章

Apache mod_headers:无法编辑 set-cookie 标头

Apache 2.4 跨域

使用 Apache 将 CORS 列入白名单

apache跨域

如何启用 ssl_module apache

apache设置自定义header