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のプラグインやテーマは最新の状態にしておく
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のバージョンに関する警告がなくなっています。
推奨モジュールの警告が残っていますが、別の機会に対応します、、。
参考サイト
まとめ
PHPのバージョンアップは一旦アンインストールの必要があるので、毎回ドキドキしながらやってます。。毎回なんとなーく作業してますが、サイトの表示に問題ないので特に考えなくやってました。
これを機会に、もうちょっとサーバーまわりを勉強したいと思います。
コメント