WordPressで「PHPの更新が必要です」と出たら

ある日、WordPressのダッシュボードを開いたら「PHPの更新が必要です」と表示されて、お困りではないでしょうか。「サイトが安全ではないバージョンのPHPを実行していることを検出しました。」と言われると、セキュリティの側面からすぐにでも対策したいところですが、どうしたらよいのかわからないなんてお悩みもあるのではないでしょうか。

この記事をお読みになられているみなさん、どうぞ安心してください。この問題を解決するため、PHPをアップグレードする手順についてご紹介いたします。

念のため確認ですが、PHPのバージョンアップを行う際は、自己責任でお願いいたします。当方は一切の責任を負いませんことご了承ください。

PHPをアップグレードする前にやること

この問題については、WordPressが原因ではありません。サーバにインストールされているPHPのバージョンがWordPressが推奨するバージョンよりも低いことが原因です。

ここで少し気を付けなければならない事は、WordPress自体がPHPで構成されているために、PHPをアップグレードしたとたんにサイトが真っ白になったりする可能性があるため、バックアップを確保して万が一問題が発生した場合にリストアできるように対策することが必要です。

WordPressサポートを確認してみると、「PHPをバージョンアップする前に」の中で、以下の手順が説明されています。

  1. サイトのバックアップを作成する
  2. WordPress本体、テーマ、プラグインをアップデートする
  3. PHPの互換性をチェックする
  4. 互換性の問題を修正する

以上の手順に従って実行すれば、安全にPHPのバージョンアップを行うことができます。

サイトのバックアップ

WordPressをご利用のユーザであれば、WordPressの更新時にバックアップを作成するプラグインを既に利用されているのではないでしょうか。PHPをアップグレードすると、サイトが表示できなくなる恐れがありますので、必ずバックアップを取るようにしてください。

WordPressのバックアップに関しては、たくさんの無料プラグインが提供されいますので、お好きなプラグインをインストールしてバックアップを作成してください。

万が一、PHPをアップグレードしてサイトが表示できなくなってしまっても、PHPを元のバージョンに戻したのちにWordPressのバックアップからサイトを復元することができますので、とても安心です。

WordPress本体、テーマ、プラグインをアップデートする

WordPress管理画面の左側のサイドメニューの「更新」や「プラグイン」に更新対象が表示されていたら、すべてを更新します。更新が完了したら、サイトが正しく表示されているか確認しましょう。

PHPの互換性をチェックする

PHPのバージョンによって、テーマやプラグインが正しく動作しない場合があります。そこでPHPをアップグレードする前に、テーマやプラグインの互換性の確認を行います。WordPressサポートからPHP互換性確認プラグインPHP Compatibility Checkerが提供されています。

互換性の問題を修正する

プラグインのインストールが完了したら、「有効化」ボタンを押してプラグインを活性化させます。WordPressの管理画面の左側サイドバーの「プラグイン」を選択して、PHP Compatibility Checkerの「スキャンを開始」をクリックしましょう。

今回のキャプチャでは、PHP 7.3へアップグレードすることを想定しています。現時点(2020年6月時点)では、PHPの推奨バージョンは7.3となっています。「プラグイン/テーマの状態」についても、お好みで選択してください。

ちょっと時間はかかりますが辛抱強く待ちます。互換性のスキャンが完了すると、次のように互換性のスキャン結果がレポートされます。

「互換性なし」と診断されたプラグインやテーマがないか確認します。「互換性あり」「警告」の場合は、アップグレード予定のPHPのバージョンでもインストールされているプラグインやテーマ問題なく動作するようですが、「警告」がある場合は、「詳細切替え」をクリックして警告の内容を確認しておくことをお勧めします。

互換性の問題を修正する

もし、使用中のプラグインやテーマが「互換性なし」と診断された場合、このままPHPをアップグレードしてしまうと、確実にサイトが真っ白になったりして正しく表示できなくなります。使用中のプラグインやテーマの最新版があるか確認してみましょう。

また、「詳細切り替え」をクリックすると、問題となったエラーについて説明されていますので、PHPのコードがわかる人は、問題となったコードを直接修正することによって回避できるかもしれません。

最悪の場合、問題のあるプラグインやテーマの使用をあきらめて、他のプラグインやテーマで代替可能か検討しましょう。有償のプラグインやテーマを使用している場合は、製造元に問い合わせしてサポート対応してもらいましょう。

PHPをアップグレードする

PHPのアップグレードの方法は、利用しているサーバによって異なります。さくらインターネットやロリポップなどのレンタルサーバを使用してWordPressを運用している場合は、各レンタルサーバの管理用GUI画面から簡単に変更することができるでしょう。詳しくは、各レンタルサーバ会社のFAQなどを確認してみてください。

独自サーバで運用されている場合は、サーバにインストールされているPHPをアップグレードするためにいくつかの作業が必要です。ここでは、CentOS 7をベースにした、PHP7.3へのアップグレードについて解説します。

PHPはyumコマンドでインストールが可能ですが、PHPの最新版をインストールするためには、EPELとRemiの2つのリポジトリの更新が必要です。

まずはじめに、古いバージョンのPHPをアンインストールします。

yum remove php php-*

次にEPELリポジトリとRemiリポジトリを設定します。

yum install epel-release
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum repolist

リポジトリー ID      リポジトリー名
base/7/x86_64      CentOS-7 - Base
epel/x86_64        Extra Packages for Enterprise Linux 7 - x86_64
remi-safe          Safe Remi's RPM repository for Enterprise Linux 7 - x86_64

最後に、remi-php73と依存関係のあるモジュールをインストールします。

php -v

PHP 7.3.19 (cli) (built: Jun  9 2020 08:06:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.19, Copyright (c) 1999-2018, by Zend Technologies

これで無事にPHPのアップグレードが完了となります。

つまずいたところ

PHPのアップグレードが完了した後にWordPressのダッシュボードを確認してみたところ、「PHPの更新が必要です」がまだ表示されていました。WordPress管理画面をF5キーでリロードしてもまだ表示されているので、もう一度PHPのインストールを最初からやり直したりしてみましたが、全く解決しませんでした。

結論から言いますと、PHPをアップグレードした場合はhttpdサービスを再起動する必要があります

レンタルサーバでは、もしかするとPHPの更新とともに自動的にhttpdサービスが再起動されるのかもしれませんが、少なくとも自前サーバでWordPressを運用している場合は、httpdサービスの再起動は必須となります。

本来、httpdサービスを停止してからPHPのアップグレードをやった方が安全なのかもしれませんが、今回の作業ではPHPのアップグレード後にhttpdサービスを再起動しても結果的に問題はありませんでした。

ご参考まで。

ホームページやWordPressに関するお問い合わについて

本サイトの掲載内容に関するお問い合わせは、こちらから承ります。
どんな内容でも構いませんので、気兼ねなくご相談ください。
システムエンジニアリングの経験を持つスタッフが、ボランティアでご相談に応じさせていただきます。