【Apacheのバージョンアップ】aptによるアップデート

サーバー

「UbuntuでApacehのアップグレードが必要になった!」
「aptコマンドだけで最新版のApacheにバージョンアップしたい」

この記事は、上記のような場合に参考となります。

本記事の内容

  • Apacheのアップグレードが必要な状況とは?
  • aptによるApacheのアップグレード
  • Apacheのバージョン確認

それでは、上記に沿って解説していきます。

Apacheのアップグレードが必要な状況とは?

そもそも、Apacheをバージョンアップしないといけないことがあるのでしょうか?

まさに、2021年10月4日にそのような状況がありました。
それに関するツイートが、以下。

経緯としては、Apacheで脆弱性(パストラバーサル攻撃が可能)が見つかりました。
それも、ゼロデイ脆弱性です。
かなりヤバめのセキュリティホールと言えます。

そして、すぐにアップグレードするように声明が出されています。
ただし、このようなときは焦らないにしましょう。

まずは、利用中のバージョンが対象がどうかの確認です。
今回は、Apache 2.4.49が対象になります。

Apache 2.4.49でなければ、今回の脆弱性はスルーしてOKです。
実際、ほとんどの人がスルーでしょう。

Apache 2.4.49は、2021年9月15日にリリースされています。
そのため、影響範囲はかなり狭いと思います。

このようなケース以外では、サポート期限切れがありますね。
サポート期限が切れた場合に備えて、Apacheをアップグレードします。

そうは言っても、サポート期限切れのApacheはたくさん稼働していますけどね。
でも、そこそこ大きい企業などでは律儀にサポート期限を守っています。

以上、Apacheのアップグレードが必要な状況を説明しました。
次は、aptによるApacheのアップグレードを行います。

aptによるApacheのアップグレード

aptによるApacheのアップグレードを行います。
言うまでもないですが、aptでApacheをインストールしていることが大前提です。

検証環境は、以下のUbuntuとなります。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=20.04 
DISTRIB_CODENAME=focal 
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

まずは、利用中のApacheのバージョンを確認します。

$ apache2ctl -v | grep 'Server version' 
Server version: Apache/2.4.41 (Ubuntu)

これは、上記で挙げたApache 2.4.49ではありません。
そのため、本来であれば緊急性は要しません。

でも、今回はこのApache 2.4.41を最新版のApacheにバージョンアップします。
現時点での最新版は、2021年10月4日にリリースされたApache 2.4.50です。

ちなみに、Apache 2.4.50はApache 2.4.49の脆弱性を解消済みです。
むしろ、そのためにリリースされたようなものでしょう。

肝心のアップグレード方法は、簡単です。
再度インストールするだけとなります。

ただし、テスト環境で事前に検証は入念に行いましょう。
追加したモジュール(mod)が動かないなどは、十分にあり得ることです。

上記記事通りに行えば、それでバージョンアップ完了です。
ただ、その前に各自で設定ファイルのバックは行っておきましょう。

具体的には、/etc/apache2以下です。
面倒なら丸ごとtarで固めてバックアップもありでしょう。

apache2.conf 
conf-available 
conf-enabled 
envvars 
magic 
mods-available 
mods-enabled 
ports.conf 
sites-available 
sites-enabled

あと、Apacheを停止するかどうかということも気になる人がいるかもしれません。
結論から言うと、起動中であってもアップグレードは可能です。

停止する場合は、次のコマンドで停止しておきましょう。

$ sudo systemctl stop apache2

では、ここからは実行したアップグレード(インストール)に用いたコマンドを羅列していきます。

$ sudo add-apt-repository ppa:ondrej/apache2

ここでパッケージの確認。
最新版のApache 2.4.50が、確認できます。

$ sudo apt show apache2 
Package: apache2 
Version: 2.4.50-1+ubuntu20.04.1+deb.sury.org+1 
Priority: optional 
Section: httpd 
Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org> 
Installed-Size: 523 kB 
Provides: httpd, httpd-cgi 
Depends: apache2-bin (= 2.4.50-1+ubuntu20.04.1+deb.sury.org+1), apache2-data (= 2.4.50-1+ubuntu20.04.1+deb.sury.org+1), apache2-utils (= 2.4.50-1+ubuntu20.04.1+deb.sury.org+1), lsb-base, mime-support, perl:any, procps 
Recommends: ssl-cert 
Suggests: apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, www-browser 
Conflicts: apache2.2-bin, apache2.2-common 
Replaces: apache2.2-bin, apache2.2-common 
Download-Size: 163 kB 
APT-Sources: http://ppa.launchpad.net/ondrej/apache2/ubuntu focal/main amd64 Packages 
Description: Apache HTTP Server 
 The Apache HTTP Server Project's goal is to build a secure, efficient and 
 extensible HTTP server as standards-compliant open source software. The 
 result has long been the number one web server on the Internet. 
 . 
 Installing this package results in a full installation, including the 
 configuration files, init scripts and support scripts.

では、インストール。

$ sudo apt-get update 
$ sudo apt-get install apache2

エラーなく終われば、Apacheのアップグレードは成功です。

以上、aptによるApacheのアップグレードを説明しました。
最後は、Apacheのバージョンを確認しましょう。

Apacheのバージョン確認

次の二つの方法で確認します。

  • コマンドによる確認
  • PHPによる確認

それぞれを下記で説明します。

コマンドによる確認

複数のコマンドが存在しています。
ただ、一つを覚えれば十分です。

$ apache2ctl -v | grep 'Server version' 
Server version: Apache/2.4.50 (Ubuntu)

確かに、Apache 2.4.50をインストールできています。

PHPによる確認

この確認を行うには、PHPがApacheで動く必要があります。
PHPのインストールは、次の記事で解説しています。
現時点(2021年10月)ではあれば、PHP 8.1がインストール可能です。

準備が整ったら、次のファイル(ファイル名は何でも)を用意します。
apache_get_version関数で、Apacheのバージョンを取得できます。

index.php

<?php 
echo apache_get_version() 
?>

そして、そのファイルにブラウザでアクセスします。

アップグレードしても、PHPとの連携で動作的には問題ないことを確認できました。

以上、Apacheのバージョン確認について説明しました。

タイトルとURLをコピーしました