PHPのバージョンをアップする手順をまとめました【WordPress/さくらVPS/CentOS7】

Linux

WordPressのサイトヘルスで、PHPのバージョンアップをすすめられました。
さくらのVPSを使っているので、バージョンアップは毎回手動で作業しています、、。毎回調べながらやっているので、今後の為に手順をメモしておきます。

WordPressのサイトヘルスを確認する

WordPressの管理画面→ツール→サイトヘルスで確認できます。
致命的なエラーではないものの、古いPHPの更新をすすめられています。最低推奨バージョン7.4をインストールしたいと思います。

実行環境

サーバーはさくらVPSを使っています。環境は次の通りです。

CentOS Linux release 7.9.2009 (Core)
Apache2.4.6

PHPのバージョンを確認する

php -vでバージョンを確認できます。
確かに7.3.33でした。これを7.4にアップします。

$ php -v
PHP 7.3.33 (cli) (built: Nov 16 2021 11:18:28) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies

バージョンアップする前の準備

今回の作業はバージョンアップというより、古いPHPを一旦削除して、新しいPHPをインストールします。そのため、バックアップは念入りにとっておきます。

WordPressのバックアップは必ずとっておきます!最悪サイトが表示されなくなるかも、、

WordPressのプラグインやテーマは最新の状態にしておく

PHPをバージョンアップする前に、プラグインやテーマはなるべく最新にしておきます。
プラグインによっては、PHPのバージョンが変わると動かないものもあるようです。
新しいバージョンに対応しなくなったプラグインは使用を控えた方が良いかも、、、。というのが個人の意見です。

WordPressのバックアップをとっておく

バックアップに使っているプラグインはUpdraftPlus WordPress Backup Pluginです。
ボタンひとつでバックアップできるのでお手軽です。

アップデート可能なパッケージをすべて最新にする

ここからコマンドでの作業になります。
まずyumでアップデート可能なパッケージをすべて最新にします。

 $ sudo yum update

pnp.iniのバックアップをとっておく

設定を変更した覚えはないですが、念の為pnp.iniのバックアップをとっておきます。

$ sudo cp /etc/php.ini /etc/php-old20220310.ini

必要があればremiリポジトリをインストールする

PHPはremiリポジトリからインストールします。今回はバージョンアップなので、既にremiリポジトリはインストールされているという前提ですすめます。

remiリポジトリがインストールされていない場合は、次のコマンドでインストールします。

$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

本来、EPELリポジトリも必要ですが、さくらVPSは最初からインストールされているそうです。

インストールするリポジトリを確認する

次のコマンドでインストールできるリポジトリを確認します。

$ ls /etc/yum.repos.d/ | grep remi-php
remi-php54.repo
remi-php70.repo
remi-php71.repo
remi-php72.repo
remi-php73.repo
remi-php74.repo
remi-php80.repo
remi-php81.repo

php74があったので、これをインストールします。

古いPHPを削除する

まず、次のコマンドでPHPと関連するパッケージを全て削除します!ちょっと勇気のいるコマンドです、、。

$ sudo yum remove php-*

途中で、パッケージを削除しても良いか聞かれるので[y]を入力します。

上記の処理を行います。よろしいでしょうか? [y/N]

最後に完了しました!の表示が出れば削除完了です。

ここで削除されたパッケージを再インストールします。

新しいPHPをインストールする

先ほど確認した「remi-php74」をインストールします。関連パッケージも一緒にインストールします。

コマンドは次のようになりました。

sudo yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php74 php php-common php-json php-mysqlnd php-pecl-mysql php-xmlrpc php-cli php-gd php-mbstring php-pdo php-xml

途中でインストールしてもしても良いか聞かれるので[y]を入力します。

Is this ok [y/d/N]: 

完了しました!の文字が出ればインストール完了です。依存パッケージもインストールされています。

先ほどバックアップしたphp.iniで変更した箇所を反映します。
今回、反映する箇所はなかったのですが、あるとすれば最大アップロードのサイズを設定する「upload_max_filesize 」の項目でしょうか。

Apacheを再起動する

PHPをインストールしたら、Apachを再起動します。

$ sudo systemctl restart httpd

動作確認をする

最後にバージョンを確認します。

$ php -v
PHP 7.4.28 (cli) (built: Feb 15 2022 13:23:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

バージョンが7.3.33から7.4.28になっているのを確認できました。

WordPressのサイトヘルスを確認すると、PHPのバージョンに関する警告がなくなっています。

推奨モジュールの警告が残っていますが、別の機会に対応します、、。

参考サイト

ネコでもわかる!さくらのVPS講座 ~第四回「phpとMariaDBをインストールしよう」 | さくらのナレッジ
初心者がVPS(Virtual Private Server)をWebサーバーとして構築し、WordPressのサイトを運用できるようになるまでの「ネコでもわかる!」連載の第4回目です。 第1回目から読みたい方はこちらか
PHPを7.3から7.4にアップグレードする手順(CentOS 7)
WordPressのサイトヘルスステータス画面のおすすめの改善の部分に、「サイトが古いバージョンの PHP (7.3.13) を実行しています」と表示されている。 しばらく気になっていたのでサイトの高速化も兼ねてPHPを7.3から7.4にア

まとめ

PHPのバージョンアップは一旦アンインストールの必要があるので、毎回ドキドキしながらやってます。。毎回なんとなーく作業してますが、サイトの表示に問題ないので特に考えなくやってました。

これを機会に、もうちょっとサーバーまわりを勉強したいと思います。

コメント