【问题标题】:How to check mod_headers and mod_expires modules enabled in apache如何检查 apache 中启用的 mod_headers 和 mod_expires 模块
【发布时间】:2012-02-06 08:24:54
【问题描述】:

我想检查我的服务器中是否启用了 mod_headers 和 mod_expires 模块

有没有一种方法可以使用某些 php 函数列出 apache 启用/禁用的模块,就像我们使用 phpinfo(); 函数列出 php 信息一样?

【问题讨论】:

    标签: apache apache-config mod-expires phpinfo mod-headers


    【解决方案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,其他发行版和操作系统处理模块的方式不同。
    猜你喜欢
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2010-10-28
    • 2017-02-05
    • 2011-10-14
    • 1970-01-01
    • 2014-01-26
    • 2011-03-14
    相关资源
    最近更新 更多