【Linux】CentOS7のapacheを標準の2.4.6から最新バージョンへアップグレード

Linux

はじめに

とあるホームページのリニューアルと共に、apacheもCentOS7標準の2.4.6から最新へアップデートする事にしました。
基本的な作業としては、IUSリポジトリからyum installするだけです。

手順

リポジトリの設定

最新パッケージを導入するようにiusリポジトリをインストールします。

yum install https://centos7.iuscommunity.org/ius-release.rpm

標準のままではiusリポジトリが有効化されたままになってしまい、他のパッケージまで最新にするのを防止(今まで通りの安定パッケージにしたい) する為無効化します。
設定ファイルは、/etc/yum.repos.d/ius.repoです。
その中の「enabled=1」を「enabled=0」に変更します。

古いapacheを削除

パッケージを削除するので、事前にconf関係をバックアップしておきます。
当環境の場合は、以下のファイルです。
・/etc/httpd/conf/httpd.conf
・/etc/httpd/conf.d/ssl.conf
・/etc/httpd/conf.d/vhost.conf
・/etc/php.ini

バックアップが完了すれば、標準のapache2.4.6を削除します。

yum remove httpd

ここで注意が必要です。
依存関係もパッケージも同時に削除されてしまいます。
今回は、mod_ssl、php、python2-certbot-apacheが削除され、以下のような表示になります。
再度インストールを行う必要があるので、控えておいた方がいいと思います。

削除中:
httpd x86_64 2.4.6-90.el7.centos @base 9.4 M
依存性関連での削除をします:
mod_ssl x86_64 1:2.4.6-90.el7.centos @base 224 k
php x86_64 7.2.26-1.el7.remi @remi-php72 10 M
python2-certbot-apache noarch 1.0.0-1.el7 @epel 399 k

削除後にこのような表示がされます

httpd-toolsがインストールされている場合は、こちらも事前に削除しておきましょう。

yum remove httpd-tools

インストール

リポジトリを指定して、httpdをインストールします。

yum install --disablerepo=base --disablerepo=updates --enablerepo=ius httpd

削除されたmod_sslをインストールします。

yum install --disablerepo=base --disablerepo=updates --enablerepo=ius mod_ssl

削除されたphpを再インストールします。
(今回はphp7.2にしているので、こちらの方法で行っています)

削除されたpython2-certbot-apacheをインストールします。

yum install --disablerepo=base --disablerepo=updates --enablerepo=ius python2-certbot-apache

各種設定

バックアップしたconfファイルを戻します。

まとめ

依存関係が削除されるのですが、設定ファイルさえバックアップすればすぐに元の環境に戻せると思います。
バックアップをしなければ最初から設定する事になり、かなり面倒な作業が発生する場合もありますので注意が必要です。

コメント