Как проверить, какие модули Apache включены/загружены в Linux

В этом руководстве мы кратко расскажем о передней части веб-сервера Apache и о том, как перечислить или проверить, какие модули Apache включены на вашем сервере.

Apache построен на основе принципа модульности, таким образом, он позволяет администраторам веб-серверов добавлять различные модули для расширения его основных функций и увеличения производительности Apache.

Рекомендуемое чтение: 5 советов по повышению производительности вашего веб-сервера Apache

Некоторые из распространенных модулей Apache включают:

  1. mod_ssl – который предлагает HTTPS для Apache.
  2. mod_rewrite – который позволяет сопоставлять URL-адреса с обычными выражениями и выполнять прозрачное перенаправление с помощью фишек .htaccess или применять код ответа HTTP.
  3. mod_security – который позволяет защищать Apache от атак типа Brute Force или DDoS.
  4. mod_status – это модуль, который позволяет отслеживать нагрузку на веб-сервер Apache и статистику страницы.

В Linux для управления интерфейсом веб-сервера Apache HTTP используется команда apachectl или apache2ctl; это фронтенд для Apache.

Информацию о использовании apache2ctl можно отобразить следующим образом:

$ apache2ctl help
OR
$ apachectl help
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 и проверить его статус, выполните эти две команды с привилегиями root, используя команду sudo, если вы обычный пользователь:

$ sudo apache2ctl start
$ sudo apache2ctl status
Check Apache 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

В режиме прокси apache2ctl может принимать все аргументы Apache в следующем синтаксисе:

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

Все аргументы Apache можно перечислить следующим образом:

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

Проверка включенных модулей Apache

Поэтому, чтобы проверить, какие модули включены на вашем веб-сервере Apache, выполните соответствующую команду ниже для вашего дистрибутива, где -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
List Apache Enabled Loaded Modules
[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. Имейте в виду, что вы можете связаться с нами, используя форму обратной связи ниже, чтобы отправить нам ваши вопросы или комментарии относительно этого руководства.

Source:
https://www.tecmint.com/check-apache-modules-enabled/