\n「mod_rewriteが有効かどうか調べる方法がわからない」
\n
\nApacheのモジュールはサーバーの機能を決定します。認証・URL書き換え・圧縮・SSL対応など、各機能はモジュールで提供されているため、モジュール一覧の確認はトラブルシュートや設定変更の基本操作です。
\n
\nこの記事では、
httpd -M と apachectl -M コマンドを使ってApacheのモジュール一覧を確認する方法を解説します。静的モジュールと動的モジュールの違い、特定モジュールの有効確認方法まで実践的に解説します。\n
\n
\n\n・
httpd -M または apachectl -M でロード済みモジュール一覧を表示できる\n・
(static) は起動時に固定で組み込まれた静的モジュール\n・
(shared) は実行時に動的にロードされるモジュール\n・
httpd -l で静的モジュール(コンパイル組み込み)のみを表示できる\n・grepと組み合わせて特定モジュールの有効確認ができる
\n
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
httpd -M でモジュール一覧を確認する
httpd -M オプション(または apachectl -M)で、現在ロードされているすべてのモジュールを一覧表示できます。1. 基本的な実行方法
# ロード済みモジュール一覧を表示する(root権限推奨) [root@server ~]# httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) authn_file_module (shared) authn_default_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) alias_module (shared) rewrite_module (shared) ssl_module (shared) Syntax OK # apachectl でも同じ結果が得られる [root@server ~]# apachectl -M
2. staticとsharedの違い
モジュール名の後ろに表示される(static) と (shared) は、モジュールの組み込み方を示します。・(static):Apacheのコンパイル時に固定で組み込まれた静的モジュール。httpd.confの設定に関係なく常にロードされる
・(shared):実行時に動的にロードされる共有モジュール。httpd.confの
LoadModule ディレクティブで制御する現場では、動的モジュール(shared)の方が設定変更の柔軟性が高く、mod_rewriteやmod_sslなど多くの機能モジュールがこの形式で提供されています。
静的モジュールのみ表示する(httpd -l)
httpd -l オプションを使うと、コンパイル時に組み込まれた静的モジュール(built-in)だけを表示できます。# 静的モジュール(コンパイル組み込み)のみ表示する [root@server ~]# httpd -l Compiled in modules: core.c prefork.c http_core.c mod_so.c # apachectl でも同じ結果が得られる [root@server ~]# apachectl -l
-M と -l の違いは、-M が動的モジュール(shared)も含む全モジュールを表示するのに対し、-l はコンパイル組み込みのものだけを表示する点です。grepで特定モジュールの有効確認
1. mod_rewriteが有効か確認する
# mod_rewriteが有効か確認する [root@server ~]# httpd -M | grep rewrite rewrite_module (shared) # 出力されれば有効、出力なしなら無効
2. mod_sslが有効か確認する
# mod_sslが有効か確認する [root@server ~]# httpd -M | grep ssl ssl_module (shared)
3. MPMモジュールを確認する
Apacheの処理方式(MPM)はprefork・worker・eventの3種類があります。現在どのMPMが使われているか確認できます。# 現在のMPMを確認する [root@server ~]# httpd -M | grep mpm mpm_prefork_module (static) # preforkの場合は1リクエスト1プロセスで処理する
MPMとは何か(実務知識)
MPM(Multi-Processing Module)は、Apacheがクライアントからのリクエストを並行処理する方式を決定するモジュールです。・mpm_prefork:1リクエスト1プロセス方式。各リクエストを独立したプロセスで処理する。PHP(非スレッドセーフ版)との組み合わせに多い
・mpm_worker:スレッド方式。複数スレッドで並行処理するため、メモリ効率がよい
・mpm_event:worker方式の改良版。Keep-Alive接続を効率的に処理できる。Apache 2.4以降の推奨MPM
MPMの変更はコンパイルオプションまたはhttpd.confの設定で行います。
まとめ
| やりたいこと | コマンド |
|---|---|
| ロード済みモジュールを全表示する | httpd -M |
| 静的モジュールのみ表示する | httpd -l |
| 特定モジュールの有効確認 | httpd -M | grep モジュール名 |
| MPMの種類を確認する | httpd -M | grep mpm |
Apacheのモジュール管理だけでなく、Linuxサーバーを体系的に理解したいですか?
モジュールの仕組みを理解することは、Apacheのトラブルシュートや機能拡張の基礎になります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます