如何检查apache中启用的mod_headers和mod_expires模块

Gir*_*iri 22 apache apache-config mod-expires phpinfo mod-headers

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

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

nou*_*oun 59

以上所有答案都是错误的.改为使用:

apachectl -t -D DUMP_MODULES

要么

apachectl -M


spe*_*ves 27

关于Debian:

user@machine:~$ /usr/sbin/apache2 -l
Run Code Online (Sandbox Code Playgroud)

大多数GNU/Linux发行版:

user@machine:~$ /usr/sbin/httpd -l
Run Code Online (Sandbox Code Playgroud)

Ubuntu的:

user@machine:~$ ls /etc/apache2/mods-enabled
Run Code Online (Sandbox Code Playgroud)

在Mac OSX上:

user@mymac:~$ httpd -l
Run Code Online (Sandbox Code Playgroud)

在Win 7(64位)上:

C:\Users\myuser>"\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\httpd.exe" -l
Run Code Online (Sandbox Code Playgroud)

除了Windows之外,从终端窗口尝试这些命令,这将使用CMD.

  • 在FreeBSD上(可能还有其他变种):`user @ machine:〜$ apachectl -M` (2认同)
  • -l只显示已编译的模块,如果共享模块会怎样? (2认同)

Won*_*Bae 7

在Ubuntu上,您可以在此处查看已启用模块的列表,

/etc/apache2/mods-enabled
Run Code Online (Sandbox Code Playgroud)

  • 并检查/ etc / apache2 / mods-available以获取可用模块的列表;简单好看 (2认同)

Ste*_*ond 6

某些版本的PHP/Apache在"已加载模块"下的phpinfo()中显示所有已加载的模块.

Speeve的答案显示在模块中编译(我系统上的x6):

echo system('/usr/sbin/apache2 -l');
Run Code Online (Sandbox Code Playgroud)

您还需要查看已启用的模块(对我来说是x36):

echo system('ls /etc/apache2/mods-enabled/');
Run Code Online (Sandbox Code Playgroud)

要获取已禁用模块的列表,请运行此命令,然后交叉所有已启用的模块:

echo system('ls /etc/apache2/mods-available/');
Run Code Online (Sandbox Code Playgroud)