Linuxで有効/ロードされているApacheモジュールを確認する方法

このガイドでは、Apacheウェブサーバーのフロントエンドについて簡単に説明し、サーバーで有効になっているApacheモジュールをリストまたは確認する方法について説明します。

Apacheは、モジュラリティの原則に基づいて構築されており、これにより、ウェブサーバー管理者がさまざまなモジュールを追加してその主要な機能を拡張し、Apacheのパフォーマンスを向上させることができます。

おすすめ記事: Apacheウェブサーバーのパフォーマンスを向上させる5つのヒント

一般的なApacheモジュールには、次のものがあります:

  1. mod_ssl – Apache向けのHTTPSを提供します。
  2. mod_rewrite – URLパターンを正規表現で一致させ、.htaccessトリックを使用して透過的なリダイレクトを実行したり、HTTPステータスコード応答を適用したりできます。
  3. mod_security – Apacheをブルートフォース攻撃やDDoS攻撃から保護することができます。
  4. mod_status – これにより、Apacheウェブサーバーの負荷とページ統計を監視できます。

Linuxでは、apachectlまたはapache2ctlコマンドを使用してApache HTTPサーバーインターフェースを制御します。これはApacheのフロントエンドです。

$ 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モードとpass-throughモードの2つの可能なモードで機能します。 SysV initモードでは、apache2ctlは以下の形式の単語コマンドを取ります。

$ apachectl command
OR
$ apache2ctl command

たとえば、Apacheを起動してその状態を確認するには、これらの2つのコマンドをルートユーザー権限で実行します。通常のユーザーの場合は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

そして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ウェブサーバーで有効になっているモジュールを確認するには、ディストリビューションに応じて以下の適用可能なコマンドを実行します。ここで-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/