エコノシスシステム設計事務所の加藤です
当事務所ではクライアント様のクラウドサーバを設定管理・運用するサーバ保守業務も行なっているのですが、この度、運用中のクラウドサーバでセキュリティの警告が上がって参りましたのでこの度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