Linuxサーバーの運用管理やWebサイトの保守を行っている際、セキュリティ脆弱性(CVE)への対応やモジュールの互換性チェック、トラブルシューティングのために「Apacheのバージョン」を確認したい場面はよくあります。
Apacheのバージョンは、ご使用のLinuxディストリビューション(Red Hat系またはDebian/Ubuntu系)によって確認コマンド名が異なります。本記事では、OSごとの標準コマンド(httpd -v / apache2 -v)をはじめ、MPMや設定ファイルのパスがわかる詳細オプション(-V)、読み込み中モジュールの確認(-M)、外部からの確認方法、および「command not found」と表示された場合のトラブル対処法を分かりやすく解説します。
1. Apacheのバージョン確認コマンド【結論・OS別一覧】
まず結論として、お使いのLinux OSに応じたApacheバージョン確認コマンドの一覧です。
| Linuxディストリビューション | 確認コマンド | 主なコマンド名 |
|---|---|---|
| Red Hat系(CentOS / RHEL / AlmaLinux / Rocky Linux) | httpd -v または apachectl -v |
httpd |
| Debian系(Ubuntu / Debian) | apache2 -v または apache2ctl -v |
apache2 |
Red Hat系(CentOS / AlmaLinux / Rocky Linuxなど)での実行例
Red Hat系のOSでは、Apacheのサービス名およびコマンド名は httpd です。ターミナルで以下のコマンドを実行します。
$ httpd -v
Server version: Apache/2.4.57 (AlmaLinux)
Server built: May 20 2023 00:00:00
また、コントロール用ラッパーコマンドである apachectl を使用しても同様の出力が得られます。
$ apachectl -v
Server version: Apache/2.4.57 (AlmaLinux)
Server built: May 20 2023 00:00:00
Debian / Ubuntu系での実行例
DebianやUbuntuでは、パッケージ名およびコマンド名が apache2 になっています。
$ apache2 -v
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-05-03T18:02:44
こちらもラッパーコマンド apache2ctl で確認可能です。
$ apache2ctl -v
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-05-03T18:02:44
2. バージョン確認コマンドの詳細オプションと使い分け
ApacheのCLIコマンドには、単にバージョン番号を表示する以外にも、運用や設定変更に役立つフラグ・オプションが用意されています。
httpd -v / apache2 -v(標準的なバージョン表示)
小文字の -v オプションは、サーバーのバージョン番号(例: 2.4.57)とビルド日時を簡潔に表示します。脆弱性対応などでバージョン数字のみをすばやく調べたい場合に最もよく使われます。
httpd -V / apache2 -V(詳細なビルド設定・パス・MPMの確認)
大文字の -V オプションを指定すると、バージョン情報に加えてコンパイル時の詳細な構成パラメータが表示されます。
$ httpd -V
Server version: Apache/2.4.57 (AlmaLinux)
Server built: May 20 2023 00:00:00
Server's Module Magic Number: 20120211:124
Server loaded: APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
-V オプションで確認できる主な重要情報は以下の通りです。
- Server MPM: マルチプロセッシングモジュールの種類(
event、worker、prefork) - HTTPD_ROOT: Apacheのルートディレクトリのパス(例:
/etc/httpdや/etc/apache2) - SERVER_CONFIG_FILE: メイン設定ファイルの相対パス(例:
conf/httpd.conf)
設定ファイルがどこにあるかわからない場合や、稼働中のMPMモデルを確認したい場合に大変便利です。
httpd -M / apache2ctl -M(有効なモジュール一覧の確認)
大文字の -M オプションを使用すると、現在Apacheに読み込まれているモジュール(mod_ssl, mod_rewrite, mod_proxy など)が一覧表示されます。
$ httpd -M
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
access_compat_module (shared)
actions_module (shared)
alias_module (shared)
auth_basic_module (shared)
ssl_module (shared)
rewrite_module (shared)
Syntax OK
SSL証明書の設定やリダイレクト設定を行う前に、必要なモジュールが有効化されているか確かめる際にご活用ください。
3. パッケージ管理コマンドでバージョンを確認する方法
コマンドラインで httpd が直接起動できない環境や、OSのパッケージ管理(yum / dnf / apt)でインストールされたバージョン情報を確認したい場合は、各パッケージマネージャーの問い合わせコマンドを使用します。
Red Hat系(rpm / dnf)
rpm コマンドでインストール済みパッケージを照会します。
$ rpm -q httpd
httpd-2.4.57-2.el9.x86_64
また、dnf(または yum)コマンドを使って詳細なパッケージ情報を確認することもできます。
$ dnf list installed httpd
Installed Packages
httpd.x86_64 2.4.57-2.el9 @appstream
Debian / Ubuntu系(dpkg / apt)
Debian系では dpkg コマンドを使用して確認します。
$ dpkg -l apache2
ii apache2 2.4.52-1ubuntu4.6 amd64 Apache HTTP Server
apt コマンドを使用する場合は以下のように実行します。
$ apt list --installed apache2
apache2/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.6 amd64 [installed]
4. サーバー外部(HTTPレスポンスヘッダー)から確認する方法
SSH等でサーバー内部にログインできない場合でも、curl コマンドなどを用いてレスポンスヘッダーを要求することで外部からバージョンを確認できる場合があります。
curl コマンドによる確認例
curl -sI(--silent --head)を実行して、HTTPヘッダーのみを取得します。
$ curl -sI http://example.com/
HTTP/1.1 200 OK
Date: Mon, 03 Aug 2026 06:00:00 GMT
Server: Apache/2.4.57 (CentOS) OpenSSL/1.1.1k
Content-Type: text/html; charset=UTF-8
Server: 行にApacheのバージョンが表示されていることが確認できます。
セキュリティ観点での注意点(ServerTokens / ServerSignature)
実務の本番環境では、Apacheの具体的なバージョンやOS名を外部に露出させると、特定バージョンの脆弱性を突いた攻撃のリスクが高まります。
そのため、本番サーバーでは設定ファイル(httpd.conf や security.conf)で以下のように設定し、バージョン情報を隠蔽するのが一般的です。
# バージョン情報を最小限("Apache" のみ)にする
ServerTokens Prod
# エラーページ等にバージョンを表示しない
ServerSignature Off
ServerTokens Prod が設定されているサーバーに対して curl -sI を実行した場合、ヘッダーには Server: Apache とだけ表示され、詳細なバージョン番号は出力されなくなります。
5. 「command not found」が出た場合のトラブルシューティング
httpd -v や apache2 -v を実行した際に「bash: httpd: command not found」というエラーが表示される場合、いくつかの原因が考えられます。
原因1: ディストリビューションごとのコマンド名の違い
最も多い間違いは、Ubuntu環境で httpd と入力したり、CentOS環境で apache2 と入力してしまうケースです。OSに合った正しいコマンド名を実行しているか再確認してください。
原因2: 環境変数PATHにパスが通っていない(フルパス実行)
一般ユーザーでログインしている場合、管理者用コマンドが配置されている /usr/sbin や /usr/local/apache2/bin にPATHが通っていないことがあります。
その場合は、以下のようにフルパスを指定して実行してみてください。
# Red Hat系
$ /usr/sbin/httpd -v
# Debian/Ubuntu系
$ /usr/sbin/apache2 -v
# ソースコードから独自ビルドした場合の一般的なパス
$ /usr/local/apache2/bin/httpd -v
原因3: 権限不足(sudo の利用)
環境によっては、一般ユーザー権限での実行が制限されている場合があります。必要に応じて sudo コマンド を付与して実行してください。
$ sudo httpd -v
権限エラーについての詳細は Permission deniedの原因と直し方 も併せてご参照ください。
原因4: そもそもApacheがインストール・起動していない
サーバーにApacheがインストールされていないか、Nginxなど別のWebサーバーが動作している可能性があります。systemctlコマンド を使用してサービスの状態を確認してみましょう。
# Apacheの稼働状態を確認
$ systemctl status httpd # Red Hat系
$ systemctl status apache2 # Debian/Ubuntu系
Webサーバー全般の基礎知識については ミドルウェアとは? や nginxとは?Apacheとの違い の解説記事も参考になります。
6. よくある質問(FAQ)
Q1. httpd と apachectl の違いは何ですか?
httpd(または apache2)はApache本体のバイナリ実行ファイルです。一方、apachectl(または apache2ctl)は httpd の操作を補助するためのシェルスクリプト(ラッパー)です。バージョン確認や設定チェック(configtest)に関しては、どちらを実行しても同じ結果を得ることができます。
Q2. Apache 2.2系と 2.4系のバージョン違いで大きな変更点はありますか?
Apache 2.4系では、デフォルトのMPMが event モジュールになり高並行処理性能が向上したほか、アクセス制御の記述法(Order allow,deny から Require all granted への変更)などの大きな違いがあります。設定ファイルの互換性チェックのためにも、事前にバージョンを確認することが推奨されます。
Q3. Apacheのバージョンアップを行うにはどうすればよいですか?
OSの標準パッケージマネージャーを使用している場合は、sudo dnf update httpd(Red Hat系)または sudo apt update && sudo apt upgrade apache2(Debian/Ubuntu系)で最新のセキュリティパッチを適用できます。
7. まとめ
Apacheのバージョン確認は、サーバー運用やセキュリティ保守における基本中の基本作業です。
- Red Hat系(CentOS/AlmaLinux/RHEL):
httpd -vまたはapachectl -v - Debian/Ubuntu系:
apache2 -vまたはapache2ctl -v - 詳細情報・MPMの確認:
httpd -V/apache2 -V - モジュール一覧の確認:
httpd -M - 外部からのレスポンス確認:
curl -sI http://domain/
コマンドが見つからない場合は、OSによるコマンド名の違いや /usr/sbin/httpd へのフルパス実行、サービス状態の確認を試みてください。

コメント