2026年6月17日
2026年6月17日
Apacheのバージョン確認と更新方法|OSパッケージで安全にアップデートする手順
Apache のバージョンはサーバー上で apache2 -v(RHEL 系は httpd -v)を実行すると確認できます。更新は、ソースからビルドするのではなく OS のパッケージ管理(apt や dnf)で行うのが基本です。この記事では、バージョンの確認方法、表示された番号が古く見えても安全な場合がある理由、更新前の準備と手順、更新後の確認と戻し方を説明します。
バージョンを確認する
サーバーにログインできる場合
SSH でログインできるなら、次のコマンドで確認します。
# Debian/Ubuntu系
apache2 -v
# RHEL/AlmaLinux系
httpd -v
Server version: Apache/2.4.xx (Ubuntu) のように表示されます。より詳しい情報(MPM の種類、ビルド時の設定)が必要な場合は apache2ctl -V(RHEL 系は httpd -V)を使います。
パッケージとしての版も確認しておきます。後述するとおり、更新の判断にはこちらのほうが役立ちます。
# Debian/Ubuntu系
dpkg -l apache2
apt-cache policy apache2
# RHEL/AlmaLinux系
rpm -q httpd
apt-cache policy では、インストール済みの版(Installed)とリポジトリにある最新の版(Candidate)が並んで表示されます。この2つが違えば、更新が出ているということです。
共用サーバーや管理画面からしか触れない場合
レンタルサーバーなど SSH が使えない環境では、WordPress の「ツール」→「サイトヘルス」→「情報」タブの「サーバー」欄に、Web サーバーのソフトウェア名が表示されます(表記は WordPress のバージョンで変わることがあります)。ただし、サーバー側の設定でバージョン番号を隠している場合は「Apache」とだけ表示されます。
共用サーバーでは Apache の更新は事業者が行うもので、利用者が操作することはできません。気になる場合は事業者のサポート情報やお知らせを確認してください。
外から Server ヘッダーで見えてしまう場合
curl -sI https://example.com の結果に Server: Apache/2.4.xx (Ubuntu) のようにバージョンまで表示される場合は、攻撃者にも同じ情報が見えています。バージョンを隠しても脆弱性がなくなるわけではありませんが、余計な情報を出さない設定にしておくのが一般的です。
ServerTokens Prod
ServerSignature Off
Debian/Ubuntu 系では /etc/apache2/conf-available/security.conf に同じ項目があります。
番号が古く見えても更新済みのことがある
Apache の公式サイト(httpd.apache.org)では 2.4 系の新しい版が随時公開されています。手元のサーバーの番号が公式の最新より小さいと「古いので危ない」と考えがちですが、そうとは限りません。
Ubuntu、Debian、RHEL、AlmaLinux などのディストリビューションは、OS のリリースごとに Apache の版をおおむね固定し、脆弱性の修正だけを取り込んだパッケージを配布します(バックポート)。この場合、apache2 -v の番号は変わらず、パッケージの版(2.4.xx-1ubuntu1.y のような末尾の部分)だけが上がります。
修正が取り込まれているかは、パッケージの変更履歴で確認できます。CVE 番号が書かれていることが多いので、気になる脆弱性の番号で検索できます。
# Debian/Ubuntu系
apt changelog apache2 | head -50
# RHEL/AlmaLinux系
rpm -q --changelog httpd | head -50
したがって、確認すべきは「公式の最新版と同じ番号か」ではなく、「OS のリポジトリにある最新のパッケージが入っているか」と「OS 自体がまだサポート期間内か」の2点です。OS のサポートが終わっていると、修正パッケージは配布されなくなります。その場合は Apache だけを入れ替えるのではなく、サポート中の OS への移行を計画してください。Apache 2.2 系は公式のサポートがすでに終了しているため、2.2 が動いているサーバーは移行の対象です。
更新前の準備
Apache の更新は通常数秒の再起動で済みますが、設定ファイルの扱いやモジュールの互換性で止まることがあります。本番環境では次の準備をしてから行います。
- サーバーのスナップショットを取る(VPS やクラウドなら管理画面から作成できることが多い)
- 設定ファイルを退避する
# Debian/Ubuntu系
sudo tar czf ~/apache-conf-$(date +%F).tar.gz /etc/apache2
# RHEL/AlmaLinux系
sudo tar czf ~/httpd-conf-$(date +%F).tar.gz /etc/httpd
- 現在の設定に文法エラーがないかを確認する(更新前から壊れていると、更新後の再起動で初めて表面化します)
sudo apache2ctl configtest # RHEL系は sudo httpd -t
- 読み込んでいるモジュールの一覧を保存しておく(更新後に比較するため)
sudo apache2ctl -M > ~/apache-modules-before.txt
- 可能ならステージング環境で同じ更新を先に適用し、サイトの表示と管理画面の操作を確認する
更新の手順
Debian/Ubuntu系
sudo apt update
apt list --upgradable 2>/dev/null | grep -i apache
sudo apt install --only-upgrade apache2
--only-upgrade は、インストール済みのパッケージだけを更新する指定です。Apache と一緒に関連パッケージ(apache2-bin、apache2-data など)も更新されます。サーバー全体をまとめて更新する場合は sudo apt upgrade を使いますが、PHP やデータベースも同時に上がるため、影響範囲が広くなる点を理解したうえで行います。
更新中に、設定ファイルを新しい版に置き換えるか聞かれることがあります。自分で編集したファイルなら、通常は現在の版を残す選択をし、新しい版との差分は後で確認します。
RHEL/AlmaLinux系
sudo dnf check-update httpd
sudo dnf upgrade httpd
RHEL 系では、パッケージが用意した設定ファイルが新しくなった場合、編集済みのファイルはそのまま残り、新しい版が .rpmnew という名前で置かれることがあります。更新後に find /etc/httpd -name "*.rpmnew" で確認し、差分に必要な変更が含まれていないかを見ておきます。
再起動について
パッケージの更新処理の中で Apache が再起動されることが多いですが、OS や設定によって異なります。更新後は状態を確認し、必要なら手動で再起動します。新しいバイナリを読み込ませるには reload では足りず、restart が必要です。
sudo systemctl restart apache2 # RHEL系は httpd
systemctl status apache2
サードパーティのリポジトリやソースビルドについて
OS 標準より新しい版を使いたい場合、Ubuntu では有志が配布する PPA(ondrej/apache2 など)を追加する方法が知られています。新しい機能が使える反面、更新の提供は配布者に依存し、OS のサポートとは別扱いになります。追加する場合は、配布元の信頼性と更新の継続性を確認してから判断してください。
ソースからビルドする方法は、以後の脆弱性対応をすべて自分で追う必要があるため、特別な理由がなければおすすめしません。cPanel や Plesk などのコントロールパネルを使っているサーバーでは、Apache はパネル側が管理しています。パネルの更新機能を使い、OS のパッケージを直接触らないようにしてください。
更新後の確認と戻し方
更新が終わったら、次の順で確認します。
apache2 -vとパッケージの版が新しくなっているかsystemctl status apache2でエラーなく起動しているかapache2ctl -Mの結果を更新前の一覧と比べ、モジュールが欠けていないか- トップページ、記事ページ、管理画面、ログイン、フォームの送信が動くか
- エラーログ(Debian 系は
/var/log/apache2/error.log、RHEL 系は/var/log/httpd/error_log)に新しい警告やエラーが出ていないか
問題が起きた場合、設定ファイルの差分が原因なら退避したファイルと比べて修正します。パッケージ自体を前の版に戻すことも、リポジトリに古い版が残っていれば可能です(apt では apt install apache2=版番号、dnf では dnf downgrade httpd)。ただし関連パッケージの版をそろえる必要があり、古い版が残っていないこともあります。戻す手段として最も確実性が高いのは、更新前に取ったスナップショットです。
脆弱性の修正を取りこぼさないために、Ubuntu/Debian の unattended-upgrades や RHEL 系の dnf-automatic で、セキュリティ更新を自動適用する方法もあります。自動化する場合も、更新後に Apache が起動しているかを監視サービスで見張っておくと安心です。なお、各 OS が提供する Apache の版やサポート期間は OS のリリースごとに異なります(2026年10月現在)。使っている OS のライフサイクル情報を確認してください。
まとめ
- バージョンは
apache2 -v/httpd -v、パッケージの版はdpkg -l/rpm -qで確認する - ディストリビューションは修正をバックポートするため、番号が公式の最新より小さくても更新済みのことがある。変更履歴で CVE を確認する
- 大切なのは OS のリポジトリの最新パッケージが入っていることと、OS がサポート期間内であること
- 更新前にスナップショット、設定の退避、configtest、モジュール一覧の保存を行う
- 更新は apt / dnf で行い、ソースビルドやパネル管理下での直接操作は避ける
- 更新後は起動状態、モジュール、主要ページ、エラーログを確認する