脆弱性対応やアップデートの際、まず把握しなければならないのがApacheのバージョン情報です。しかし、確認方法はひとつではありません。サーバーにSSHログインできる場合、パッケージ管理で調べたい場合、さらにはサーバーに直接入れない場合と、状況によって使うコマンドが変わります。
この記事では、Apacheのバージョンを確認する方法を5つ紹介します。基本の
httpd -vから、ビルド情報の詳細確認、rpm/dpkgによるパッケージ確認、さらに外部からの確認方法まで、実際のサーバー出力例とあわせて解説します。【この記事でわかること】
・httpd -v でApacheのバージョンを即座に確認できる
・httpd -V でビルド日時やMPM・設定ファイルの場所もわかる
・rpm -q httpd でパッケージのリリース番号まで把握できる
・サーバーにログインできない場合はcurlで応答ヘッダーから確認する
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Apacheのバージョンを確認する5つの方法
Apacheのバージョン確認には、目的に応じて複数の方法があります。まずは一覧で把握してください。| やりたいこと | コマンド | 補足 |
|---|---|---|
| バージョンだけ確認 | httpd -v |
最も基本的な方法 |
| ビルド情報を詳細に確認 | httpd -V |
MPM・設定ファイルパスも表示 |
| パッケージのバージョンを確認 | rpm -q httpd |
Red Hat系。Debian系はdpkg -l apache2 |
| apachectlで確認 | apachectl -v |
httpdへのラッパー |
| 外部からバージョンを確認 | curl -sI http://対象サーバー/ |
Serverヘッダーで判別 |
方法1:httpd -v でバージョンを確認する
最もシンプルで確実な方法です。httpdコマンドに-vオプションを付けて実行します。$ httpd -v Server version: Apache/2.4.62 (Rocky Linux) Server built: Aug 12 2024 00:00:00
Server versionの行にApacheのバージョン番号が表示されます。上の例ではApache 2.4.62がインストールされていることがわかります。Server builtはApacheがビルドされた日時です。パッケージ管理でインストールした場合は、ディストリビューションがパッケージをビルドした日付が表示されます。httpd コマンドが見つからない場合
「command not found」と表示される場合は、パスが通っていないか、そもそもApacheがインストールされていない可能性があります。フルパスで実行してみてください。
# Red Hat系(RHEL、AlmaLinux、Rocky Linux) $ /usr/sbin/httpd -v Server version: Apache/2.4.62 (Rocky Linux) Server built: Aug 12 2024 00:00:00 # ソースからインストールした場合の例 $ /usr/local/apache2/bin/httpd -v Server version: Apache/2.4.62 (Unix) Server built: Sep 3 2024 15:20:41
httpdではなくapache2コマンドを使います。# Debian / Ubuntu系 $ apache2 -v Server version: Apache/2.4.62 (Ubuntu) Server built: 2024-08-15T00:00:00
方法2:httpd -V でビルドの詳細情報を確認する
-v(小文字)ではバージョンとビルド日時しか表示されませんが、-V(大文字)を使うと、Apacheのビルド時に組み込まれた設定の詳細を確認できます。$ httpd -V Server version: Apache/2.4.62 (Rocky Linux) Server built: Aug 12 2024 00:00:00 Server's Module Magic Number: 20120211:132 Server loaded: APR 1.7.0, APR-UTIL 1.6.3, PCRE 8.44 2020-02-12 Compiled using: APR 1.7.0, APR-UTIL 1.6.3, PCRE 8.44 2020-02-12 Architecture: 64-bit Server MPM: event threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv6) -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D DEFAULT_PIDLOG="run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types"
・Server MPM: マルチプロセッシングモジュールの種類。event、prefork、workerのいずれか。パフォーマンスチューニングの基本情報
・HTTPD_ROOT: Apacheの設定ファイルのルートディレクトリ
・SERVER_CONFIG_FILE: メインの設定ファイルパス(HTTPD_ROOTからの相対パス)
・DEFAULT_ERRORLOG: エラーログのデフォルト出力先
「設定ファイルはどこにあるの?」と聞かれた時に、
httpd -Vを実行すれば一発で答えが出ます。特にソースからコンパイルしてインストールした環境では、パスが標準と異なることが多いため、この確認は欠かせません。方法3:rpm / dpkg でパッケージバージョンを確認する
パッケージ管理コマンドを使えば、Apacheを起動していなくてもバージョンを確認できます。リリース番号やアーキテクチャまで含めた正確なパッケージ情報が得られるため、脆弱性対応の報告書作成にも役立ちます。1. Red Hat系(RHEL、AlmaLinux、Rocky Linux)
$ rpm -q httpd httpd-2.4.62-1.el9.x86_64
・httpd: パッケージ名
・2.4.62: Apacheのバージョン
・1.el9: リリース番号(el9 = RHEL 9系)
・x86_64: アーキテクチャ(64bit)
さらに詳しい情報が必要な場合は、
rpm -qiを使います。$ rpm -qi httpd Name : httpd Version : 2.4.62 Release : 1.el9 Architecture: x86_64 Install Date: 2024年09月15日 10時30分00秒 Group : System Environment/Daemons Size : 4521389 License : ASL 2.0 Signature : RSA/SHA256, 2024年08月15日 12時00分00秒, Key ID 350d275d51cb2c6b Source RPM : httpd-2.4.62-1.el9.src.rpm Build Date : 2024年08月12日 00時00分00秒 Vendor : Rocky URL : https://httpd.apache.org/ Summary : Apache HTTP Server
2. Debian / Ubuntu系
$ dpkg -l apache2 希望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待/(T)トリガ保留 |/ エラー?=(空)無/(R)要再インストール ||/ 名前 バージョン アーキテクチャ 説明 +++-==============-================-================-============================ ii apache2 2.4.62-1ubuntu1 amd64 Apache HTTP Server
方法4:apachectl -v で確認する
apachectlはApacheの起動・停止を管理するラッパースクリプトです。httpd -vと同じ結果が得られます。$ apachectl -v Server version: Apache/2.4.62 (Rocky Linux) Server built: Aug 12 2024 00:00:00
httpdコマンドにパスが通っていないけど、apachectlなら使える」という状況は実務でよくあります。apachectlは/usr/sbin/にあるため、一般ユーザーのPATHにも含まれていることが多いのです。apachectl -V(大文字)でも、httpd -Vと同じ詳細情報を確認できます。方法5:外部からHTTPヘッダーで確認する
サーバーにSSHログインできない場合でも、HTTPレスポンスヘッダーのServerフィールドからバージョンを確認できる場合があります。$ curl -sI http://192.168.1.XXX/ HTTP/1.1 200 OK Date: Mon, 07 Apr 2026 03:15:00 GMT Server: Apache/2.4.62 (Rocky Linux) Content-Type: text/html; charset=UTF-8
Server:の行にApacheのバージョンが表示されています。【重要】Serverヘッダーが表示されない場合
セキュリティ対策として、本番環境ではApacheのバージョン情報を隠すのが一般的です。httpd.confで以下のように設定されていると、バージョンは表示されません。# httpd.conf の設定例 ServerTokens Prod
Serverヘッダーには「Apache」とだけ表示され、バージョン番号は含まれません。$ curl -sI http://192.168.1.XXX/ HTTP/1.1 200 OK Server: Apache
ServerTokensディレクティブの設定値と表示内容の対応は以下のとおりです。| 設定値 | 表示例 |
|---|---|
| Full(デフォルト) | Apache/2.4.62 (Rocky Linux) OpenSSL/3.0.7 |
| OS | Apache/2.4.62 (Rocky Linux) |
| Minor | Apache/2.4.62 |
| Major | Apache/2.4 |
| Prod | Apache |
本番サーバーでは
ServerTokens Prodに設定することを強く推奨します。バージョン情報の公開は、攻撃者に脆弱性を突くヒントを与えることになります。トラブルシュート:バージョンが確認できないときの対処
「command not found」と表示される
Apacheがインストールされていないか、パスが通っていません。以下の手順で確認してください。# Apacheがインストールされているか確認(Red Hat系) $ rpm -qa | grep httpd httpd-2.4.62-1.el9.x86_64 httpd-tools-2.4.62-1.el9.x86_64 httpd-filesystem-2.4.62-1.el9.noarch # 何も表示されなければインストールされていない # Debian / Ubuntu系の場合 $ dpkg -l | grep apache2
whichやfindでバイナリの場所を探します。$ which httpd /usr/sbin/httpd # 見つからない場合 $ find / -name httpd -type f 2>/dev/null /usr/local/apache2/bin/httpd
複数バージョンが混在している場合
ソースからインストールしたApacheとパッケージ管理のApacheが共存していることがあります。どちらが実際に動いているかを確認するには、プロセスを調べます。$ ps aux | grep httpd | grep -v grep root 1234 0.0 0.3 123456 7890 ? Ss 10:15 0:00 /usr/sbin/httpd -DFOREGROUND apache 1235 0.0 0.2 123456 5678 ? S 10:15 0:00 /usr/sbin/httpd -DFOREGROUND
/usr/sbin/httpdがバイナリのパスです。このパスを指定して-vオプションを実行すれば、実際に稼働しているApacheのバージョンを正確に把握できます。$ /usr/sbin/httpd -v Server version: Apache/2.4.62 (Rocky Linux) Server built: Aug 12 2024 00:00:00
実務Tips:バージョン確認が必要になる場面
1. 脆弱性対応(CVE確認)
Apache HTTPDの脆弱性が公表された場合、自分のサーバーが影響を受けるかどうかをすぐに判断する必要があります。httpd -vで得られるバージョン番号と、CVEの影響範囲を照合してください。2. アップデート前後の確認
yum update httpdやapt upgrade apache2の前後でバージョンを記録しておくことで、変更履歴を正確に残せます。# アップデート前に記録 $ httpd -v >> /tmp/apache_version_before.txt 2>&1 # アップデート実行 $ sudo yum update httpd # アップデート後に確認 $ httpd -v Server version: Apache/2.4.63 (Rocky Linux) Server built: Feb 10 2025 00:00:00
3. .htaccessの構文がバージョンによって変わる
Apache 2.2系と2.4系では、アクセス制御の書き方が大きく変更されました。古い設定ファイルをそのまま使うと「500 Internal Server Error」が発生します。| Apache 2.2系 | Apache 2.4系 |
|---|---|
Order deny,allow |
Require all granted |
Allow from all |
Require all granted |
Deny from all |
Require all denied |
バージョンを確認せずに設定ファイルを変更すると、思わぬエラーの原因になります。
関連記事:Apacheのバージョンを確認したあとに、Timeout / KeepAliveTimeout / ProxyTimeout を用途別に設計するなら Apacheのタイムアウト(Timeout)を設定・確認する方法【2.4対応版】 を併読してください。LB / Apache / バックエンドの3層タイムアウト整合まで解説しています。
本記事のまとめ
Apacheのバージョン確認方法を5つ紹介しました。| やりたいこと | コマンド |
|---|---|
| バージョンだけ確認 | httpd -v |
| MPMや設定ファイルパスも含めて確認 | httpd -V |
| パッケージのリリース番号まで確認 | rpm -q httpd |
| apachectl経由で確認 | apachectl -v |
| 外部からHTTPヘッダーで確認 | curl -sI http://対象サーバー/ |
| 稼働中のバイナリパスを特定 | ps aux | grep httpd | grep -v grep |
普段の運用では
httpd -vだけで十分ですが、脆弱性対応やトラブルシュートの際にはhttpd -Vやrpm -qの情報が必要になります。いざという時にすぐ確認できるよう、コマンドを覚えておいてください。
Apacheの設定ファイルを触るたびに不安を感じていませんか?
バージョン確認はサーバー管理の第一歩です。しかし、本当に重要なのはその先。脆弱性対応、アクセス制御、パフォーマンスチューニングまで、Apacheを安全に運用するには体系的な知識が必要です。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:httpdサービスを起動・停止・再起動する方法|systemctlとinit.dの両対応
- この記事の属するカテゴリ:Webサーバー管理へ戻る

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