CentOS7のApacheとPHPを Apache2.4.35とPHP7.3へ更新する

エコノシスシステム設計事務所の加藤です
当事務所ではクライアント様のクラウドサーバを設定管理・運用するサーバ保守業務も行なっているのですが、この度、運用中のクラウドサーバでセキュリティの警告が上がって参りましたのでこの度ApacheとPHPを最新バージョンへアップデートいたしました。
ここに手順を残しておきたいと思います。
質問などございましたら、こちらからお問い合わせください。

電話・メール・フォームでのお問い合わせ| econosys system

もちろんサーバ構築のお仕事も大歓迎です。(↑こちらからご依頼ください)

● Apache最新版(2.4.35)へアップデートする

現在の設定ファイルのバックアップを取った後、一旦現在のApacheを削除してから再インストールという手順となります。

● 1. Apache最新版が管理されているyumレポジトリをインストールする

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

ius.repo をデフォルトのリポジトリから除外する

vi /etc/yum.repos.d/ius.repo
[ius]
...
enabled=0 #enabled=1から変更
...

● 2. (準備1)Nghttp2をインストールする

yum --enablerepo=epel -y install nghttp2

● 3. (準備2)/etc/mime.typesをインストールする

yum -y install mailcap

● 4. 現在のApacheの設定とディレクトリを一旦退避する

service httpd stop
mv /var/www/ /var/www__backup
mv /etc/httpd/ /etc/httpd__backup

● 5. 現在のApacheを一旦アンインストールする

yum remove httpd
yum remove httpd-tools

● 6. Apache最新版のバージョンを確認する

yum --disablerepo=base,extras,updates --enablerepo=ius list | grep httpd

● 7. Apache最新版をインストールする

yum --disablerepo=base,extras,updates --enablerepo=ius install -y httpd

● 8. 退避した設定とディレクトリを戻す

mv /var/www/ /var/www__new
mv /etc/httpd/ /etc/httpd__new
mv /var/www__backup/ /var/www/
mv /etc/httpd__backup/ /etc/httpd/

● 9. インストールしたApache最新版のバージョンを確認する

httpd -v
Server version: Apache/2.4.35 (IUS)
Server built:   Oct 16 2018 16:35:27

● ログローテーションの設定を再設定する

Apacheのログローテーションの設定がデフォルトに戻されているのでこちらの再設定を忘れずに行います。

cat /etc/logrotate.d/httpd

● PHP7.3最新版をインストールする

● 1.現在インストールされているPHPと関連モジュールを調べる

PHPモジュールはもとの環境に戻すのに必要です。
必ずテキストエディタなどに貼り付けて保存しておきましょう。
またこのリストから一旦アンインストールするパッケージ名をリストアップします。

yum list installed | grep php
php-cli.x86_64                       7.1.25-2.el7.remi               @remi-php71
php-common.x86_64                    7.1.25-2.el7.remi               @remi-php71
php-devel.x86_64                     7.1.25-2.el7.remi               @remi-php71
php-gd.x86_64                        7.1.25-2.el7.remi               @remi-php71
php-json.x86_64                      7.1.25-2.el7.remi               @remi-php71
php-mbstring.x86_64                  7.1.25-2.el7.remi               @remi-php71
php-mysqlnd.x86_64                   7.1.25-2.el7.remi               @remi-php71
php-pdo.x86_64                       7.1.25-2.el7.remi               @remi-php71
php-xml.x86_64                       7.1.25-2.el7.remi               @remi-php71
php71-php-common.x86_64              7.1.25-2.el7.remi               @remi      
php71-php-json.x86_64                7.1.25-2.el7.remi               @remi      
php71-php-xml.x86_64                 7.1.25-2.el7.remi               @remi      
php71-runtime.x86_64                 1.0-1.el7.remi                  @remi     

例: php-cli.x86_64 の場合、 yum コマンドで php-cli を指定します。

● 2. 現在のPHPの設定とディレクトリを一旦退避する

service httpd stop
mv /etc/php.d/ /etc/php.d__backup/
mv /etc/php.ini /etc/php.ini__backup
mv /etc/php-zts.d/ /etc/php-zts.d__backup/

確認しておきましょう

ls -l /etc/ | grep php
drwxr-xr-x.  2 root root     4096 Dec 27 14:24 php.d__backup/
-rw-r--r--.  1 root root    62394 Dec  8 22:01 php.ini__backup
drwxr-xr-x.  2 root root     4096 Dec 27 14:24 php-zts.d__backup/

● 3.現在のPHPを一旦アンインストールする

yum remove php php-devel php-mbstring php-pdo php-gd php-mysql php71-php-xml php-xml
yum remove php-cli php-common php-json 
yum remove php71-php-common php71-php-json php71-runtime.x86_64

確認しておきましょう

yum list installed | grep php

(何も結果が返ってこなくなれば無事アンインストール出来ています)

● 4. PHP最新版のバージョンを確認する

yum --disablerepo=* --enablerepo=remi,remi-php73  list | grep php

● 5.PHP7.3最新版をインストールする

yum install -y --enablerepo=remi,remi-php73 php php-cli php-devel php-mbstring php-pdo php-gd php-mysql php73-php-xml php-xml 

● 5-2. 「libargon2.so」依存関係でエラーが出る場合

PHP7.3のインストール時に環境によっては次のようなエラーが出ることがあります。

エラー: パッケージ: php-cli-7.3.0-1.el7.remi.x86_64 (remi-php73)
             要求: libargon2.so.0()(64bit)
エラー: パッケージ: php-7.3.0-1.el7.remi.x86_64 (remi-php73)
             要求: libargon2.so.0()(64bit)

libargon2.soを手動でインストールする事でこのエラーを回避できます。

● libargon2.soを手動でインストールする

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libargon2-20161029-2.el7.x86_64.rpm
rpm -Uvh libargon2-20161029-2.el7.x86_64.rpm 

これでOKです。

● 6. Apacheの起動

systemctl start httpd

以上です。
必ず vagrant などの環境でテストを行ってから本番で行ってください。

参考・引用: https://goo.gl/SofDY8

CentOS7のApacheとPHPを Apache2.4.35とPHP7.3へ更新する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です