Apacheのバージョン確認方法まとめ|Linux OS別のコマンド例とコマンドが見つからない場合の対処法

コマンドリファレンス

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: マルチプロセッシングモジュールの種類(eventworkerprefork
  • 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.confsecurity.conf)で以下のように設定し、バージョン情報を隠蔽するのが一般的です。

# バージョン情報を最小限("Apache" のみ)にする
ServerTokens Prod

# エラーページ等にバージョンを表示しない
ServerSignature Off

ServerTokens Prod が設定されているサーバーに対して curl -sI を実行した場合、ヘッダーには Server: Apache とだけ表示され、詳細なバージョン番号は出力されなくなります。

5. 「command not found」が出た場合のトラブルシューティング

httpd -vapache2 -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 へのフルパス実行、サービス状態の確認を試みてください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント