【Web】さくらVPSのPHPを7.1→7.3にバージョンアップする

投稿日:2020年6月30日
最終更新日:2021年12月28日

PHP 7.1はすでにサポート切れ…

少し前からWordPressでWarningが出ていて、いつかはやらないとな~と思ってたPHPのバージョンアップ。私はさくらVPSでこのブログを運用している。現在のPHP のバージョンは7.1だが、以下の記事に書いてあるように、すでにPHP 7.1はサポート終了している。

PHPのリリース日とサポート期限

このまま使い続けるのはセキュリティ的によろしくないため(管理者の意識の低さをこの記事で露呈させるのもセキュリティ的によくないかもしれないが…笑)、PHPを最新版にアップデートしたので、やり方をメモしておく。また何年後かにやるだろうし。

※私はインフラ関係のプロでもなく趣味程度の知識なので、以下の手順で何か問題が起こっても私は責任負えませんのでご了承くださいm(_ _)m

 

まずはテーマとプラグインの互換性の確認

まず、WordPress公式のお知らせメッセージの中で紹介されていたプラグイン「PHP Compatibility Checker」でPHPと、現在使っているプラグイン&テーマの互換性をチェックしてみる。まずはWordPressのプラグインからPHP Compatibility Checkerを検索して追加。

ツールからPHP Compatibilityを開く。

PHPのversionを選択して、サイトをスキャンする。今回はPHP 7.3を選択。プラグインの数が多いと少し時間がかかるかも。私の場合はテーマと全てのプラグインは全て互換性ありになっていた。ただし、PHP Compatibility Checkerは100%の互換性を補償するものではないので、バージョンアップ後に動作確認は必要。

ちなみに、PHPの最新バージョンは7.4だが、今回はCheckerで確認できた7.3にバージョンアップする。7.3は来年まではまだサポートが続くので、サポートが切れるころに7.4にアップデートしたいと思う。そのころにはCheckerも7.4に対応しているだろうし。

 

VPSの更新その1:既存のPHP7.1を消去

以下のサイトを参考にさせて頂きながら作業を進めた。基本はこちらに沿えばできるが、ちょっと私の環境だとうまくいかない部分もあったので補足的に以下に手順をメモしておく。なお、作業はrootになって進める前提。

CentOS7のPHPを5.6/7.0/7.1/7.2/7.3系にバージョンアップする

まずは以下でインストールされているPHPのpackageを確認し、古いPHPを消去する。

rpm -qa | grep php

私はVPSを立ち上げる時、こちらのさくらVPSのチュートリアルサイトを参考にしながら立ち上げたので、今回もPHPの追加パッケージは同じものを入れることにした。他に自分が入れたものがあれば、メモっておいて後で追加で入れること。

php.iniの設定をいじっているので、バックアップを取っておく。

cp /etc/php.ini /etc/php-old.ini

これで準備は完了。以下のコマンドを実行。緊張の一瞬。

※ちなみにこの方法だとphpMyAdminも消えてしまうので、消えたら困る人は注意。phpMyAdminだけ残してもいいが、phpMyAdminだけ古くてPHPだけ更新するのも何かトラブルのもとになりそうな気もするので、最新版をインストールしなおした方が無難な気もする…。

yum remove php-*

特に問題が起こらなければ、最後に

Is this ok [y/N] :

と聞かれるのでyを入力して実行。問題なければComplete!と表示される。これで準備完了。

 

VPSの更新その2:PHP7.3をインストール

まず、以下のコマンドのPHP7.3をインストールを実行。

yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php-mbstring

特に問題なく完了。つぎに、さくらVPSのチュートリアルサイトで入れたものと同じものを入れておく。本当は一個一個何のパッケージか知っておいた方が良いとは思うが、とりあえず入れておいて問題は無いと思うので。

さくらVPSのチュートリアルと同じものを入れようとしたとき、ちょっとした問題もあったのだが、まずは結果的にうまくできた手順だけ先に書いておく。まずは以下を実行してphp-devel以外をインストール。

※じつは私がやったときはphp-gdを忘れており後からインスト―ルしたが、最初にまとめてやっても問題ないはず。

yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php-mbstring php-mysqlnd php-pdo php-gd

php-develは上記のコマンドと一緒にやろうとすると依存性解決ができなかったので、以下でインストール。

yum install --enablerepo=epel,remi,remi-safe,remi-php73 php-devel

最後に、以下のコマンドでhttpdを再起動してPHPを有効にする。あとは、/etc/php.iniの内容を/etc/php-old.iniで保存しておいた内容に戻して、これでアップデートは完了。

参考までにphp-develのインストールに失敗した時のメモを以下に残しておく。

 

VPSの更新おまけ:PHP7.3でphp-develのインストールに失敗?

最初、以下のコマンドでまとめてPHPのパッケージをインストールしようとした。

yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php73 php-devel php-mbstring php-mysqlnd php-pdo

しかし、php-develの依存性解決ができずにError。

--> Finished Dependency Resolution
Error: Package: php-devel-7.3.19-1.el7.remi.x86_64 (remi-php73)
           Requires: openssl-devel(x86-64)
Error: Package: php-devel-7.3.19-1.el7.remi.x86_64 (remi-php73)
           Requires: zlib-devel(x86-64)
Error: Package: php-devel-7.3.19-1.el7.remi.x86_64 (remi-php73)
           Requires: libedit-devel(x86-64)
Error: Package: php-devel-7.3.19-1.el7.remi.x86_64 (remi-php73)
           Requires: libxml2-devel(x86-64)
Error: Package: php-devel-7.3.19-1.el7.remi.x86_64 (remi-php73)
           Requires: krb5-devel(x86-64)

これ一個一個入れるのか~めんどくさいな…と思ったが、ひょっとして–disablerepo=*が悪さしてるのでは?という気がしたので、こちらを無くして以下のコマンドでインストールしてみたところ、特に問題なし。

yum install --enablerepo=epel,remi,remi-safe,remi-php73 php-devel

インストールされた後でざっとパッケージを確認したが、特に問題はなさそうなのでこれで良しとする。PHPをバージョンアップしてからしばらくブログ運営しているが、特に問題は起きていない。何か問題があったらまた対策をブログに残しておきたいと思う。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください