ウェブサイト検索

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 – ブルート フォース攻撃や DDoS 攻撃から Apache を保護します。
  4. mod_status – Apache Web サーバーの負荷とページの統計を監視できます。

Linux では、Apache HTTP サーバー インターフェイスを制御するために apachectl または apache2ctl コマンドが使用されます。これは 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 モードとパススルー モードの 2 つのモードで機能します。 SysV init モードでは、apache2ctl は次の形式の単純な 1 単語のコマンドを受け取ります。

apachectl command
OR
apache2ctl command

たとえば、Apache を起動してそのステータスを確認するには、通常のユーザーの場合、sudo コマンドを使用して root ユーザー権限で次の 2 つのコマンドを実行します。

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

またパススルー モードで動作する場合、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 モジュールを一覧表示する方法を説明しました。このガイドに関するご質問やコメントは、以下のフィードバック フォームを使用してご連絡いただけます。