网站搜索

如何检查 Linux 中启用/加载了哪些 Apache 模块


在本指南中,我们将简要讨论 Apache Web 服务器前端以及如何列出或检查服务器上已启用哪些 Apache 模块。

Apache 是基于模块化原则构建的,这样,Web 服务器管理员就可以添加不同的模块来扩展其主要功能并增强 Apache 的性能。

建议阅读: 提升 Apache Web 服务器性能的 5 个技巧

一些常见的 Apache 模块包括:

  1. mod_ssl – 为 Apache 提供 HTTPS。
  2. mod_rewrite – 允许将 url 模式与正则表达式进行匹配,并使用 .htaccess 技巧执行透明重定向,或应用 HTTP 状态代码响应。
  3. mod_security – 它可以帮助您保护 Apache 免受暴力或 DDoS 攻击。
  4. mod_status – 允许您监控 Apache Web 服务器负载和页面静态。

在Linux中,apachectlapache2ctl命令用于控制Apache HTTP服务器接口,它是Apache的前端。

您可以显示 apache2ctl 的使用信息,如下所示:

apache2ctl help
OR
apachectl help
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
                       [-C "directive"] [-c "directive"]
                       [-k start|restart|graceful|graceful-stop|stop]
                       [-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
  -D name            : define a name for use in  directives
  -d directory       : specify an alternate initial ServerRoot
  -f file            : specify an alternate ServerConfigFile
  -C "directive"     : process directive before reading config files
  -c "directive"     : process directive after reading config files
  -e level           : show startup errors of level (see LogLevel)
  -E file            : log startup errors to file
  -v                 : show version number
  -V                 : show compile settings
  -h                 : list available command line options (this page)
  -l                 : list compiled in modules
  -L                 : list available configuration directives
  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)
  -S                 : a synonym for -t -D DUMP_VHOSTS
  -t -D DUMP_MODULES : show all loaded modules 
  -M                 : a synonym for -t -D DUMP_MODULES
  -t                 : run syntax check for config files

apache2ctl 可以在两种可能的模式下运行:Sys V init 模式和直通 模式。在 SysV init 模式下,apache2ctl 采用以下形式的简单单字命令:

apachectl command
OR
apache2ctl command

例如,要启动 Apache 并检查其状态,如果您是普通用户,请使用 sudo 命令以 root 用户权限运行这两个命令:

sudo apache2ctl start
sudo apache2ctl status
tecmint@TecMint ~ $ sudo apache2ctl start
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
httpd (pid 1456) already running
tecmint@TecMint ~ $ sudo apache2ctl status
Apache Server Status for localhost (via 127.0.0.1)

Server Version: Apache/2.4.18 (Ubuntu)
Server MPM: prefork
Server Built: 2016-07-14T12:32:26

-------------------------------------------------------------------------------

Current Time: Tuesday, 15-Nov-2016 11:47:28 IST
Restart Time: Tuesday, 15-Nov-2016 10:21:46 IST
Parent Server Config. Generation: 2
Parent Server MPM Generation: 1
Server uptime: 1 hour 25 minutes 41 seconds
Server load: 0.97 0.94 0.77
Total accesses: 2 - Total Traffic: 3 kB
CPU Usage: u0 s0 cu0 cs0
.000389 requests/sec - 0 B/second - 1536 B/request
1 requests currently being processed, 4 idle workers

__W__...........................................................
................................................................
......................

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

当在pass-through模式下运行时,apache2ctl可以采用以下语法获取所有Apache参数:

apachectl [apache-argument]
apache2ctl [apache-argument]

所有 Apache 参数可以列出如下:

apache2 help    [On Debian based systems]
httpd help      [On RHEL based systems]

检查启用的 Apache 模块

因此,为了检查 Apache Web 服务器上启用了哪些模块,请运行以下适用于您的发行版的命令,其中 -t -D DUMP_MODULES 是一个 Apache 参数,用于显示所有启用/加载的模块:

---------------  On Debian based systems --------------- 
apache2ctl -t -D DUMP_MODULES   
OR 
apache2ctl -M
---------------  On RHEL based systems --------------- 
apachectl -t -D DUMP_MODULES   
OR 
httpd -M
apache2ctl -M
[root@tecmint httpd]# apachectl -M
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 auth_digest_module (shared)
 authn_file_module (shared)
 authn_alias_module (shared)
 authn_anon_module (shared)
 authn_dbm_module (shared)
 authn_default_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 authz_owner_module (shared)
 authz_groupfile_module (shared)
 authz_dbm_module (shared)
 authz_default_module (shared)
 ldap_module (shared)
 authnz_ldap_module (shared)
 include_module (shared)
....

就这样!在这个简单的教程中,我们解释了如何使用 Apache 前端工具列出已启用/加载的 apache 模块。请记住,您可以使用下面的反馈表与我们联系,向我们发送有关本指南的问题或意见。