WordPressでサイト運営しているのであれば、対応しているPHPのバージョンはできる限り最新のものにしておきたいところ。ですがPHPのバージョンを変更するとなると、場合によっては不具合が起きるケースもあるので慎重に作業を進めるべきです。
そこで便利なプラグインが「PHP Compatibility Checker」。サイトで導入しているテーマやプラグインが、特定のPHPのバージョンに対応しているのか否かを判定してくれます。
今回はPHP Compatibility Checkerの使い方や注意点などを解説していくので、5から7系へ移行予定の方などPHPのバージョンアップデートを検討している方はぜひチェックしてみてください。
Contents
「PHP Compatibility Checker」ってどんなプラグイン?
photo by:WP Engine公式サイト
PHP Compatibility Checkerは、WP Engineが提供するWordPressプラグイン。WordPressサイトで導入しているテーマやプラグインが、切り替えたいPHPのバージョンに対応しているかチェックしてくれます。
現状のコードで問題がありそうな箇所を発見し、何が課題なのか簡単に内容をレポートしてくれます。
そもそもWordPressサイトはPHPという言語で動作しており、PHPのバージョンを最新のものにしておくとサイトスピードが改善できたり、セキュリティ面でもより安全に運営することができます。最新バージョンであるPHP7は、PHP5に比べ2倍以上のパフォーマンス改善を見込めるようです。
しかしもしPHPのバージョンを変更したくても、今使っているテーマやプラグインが変更する最新のPHPに対応していない場合、デザインが崩れたり挙動がおかしくなったり、最悪の場合サイトが正常に動作しなくなるケースもあります。古いバージョンのPHPで記述されたプログラムの一部が、最新のバージョン環境で動かなくなることがあるためです。
そこでPHP Compatibility Checkerを使えばその課題を事前に特定し、トラブルを未然に防ぐことが可能です。もちろんサイトによって条件が異なるので、100%の安全を保証するものではありません。ですがトラブルの芽を摘むためにも、できる限りの手は尽くしておくべきでしょう。
事前にサイトのPHPバージョンを確認する方法
現時点でどのバージョンなのか把握できていない方は、事前に必ず確認しておきましょう。WordPressのPHPバージョン設定は、レンタルサーバー会社がサーバー側で管理しています。
各主要サーバーごとのバージョン確認方法は、下記公式サイトをご確認ください。
実際にさくらサーバーで確認してみた
僕は現状さくらサーバーを主に使っているので、実際にさくらサーバーのPHPバージョンを確認してみました。
まずコントロールパネルにアクセスし、サイドバーにある「PHPのバージョン選択」します。
確認していると、PHP 5.6.40 (CGI版)でした。これを最新のPHP 7.3へ変更します。CGIからパフォーマンスの高いモジュール版へ移行したいところですが…… その話はまた今度に。
PHP Compatibility Checkerの導入方法
PHP Compatibility Checkerの導入方法を見ていきましょう!基本的に他のWordPressプラグインと同じです。
インストールと有効化
管理画面のメニュー「プラグイン」>「新規追加」から、「PHP Compatibility Checker」で検索。「いますぐインストール」をクリックし、有効化します。
設定欄からインストールされてるか確認
インストールを完了すると、管理画面のツール欄に「PHP Compatibility」が追加されていればOKです。クリックして詳細を確認しましょう。
PHP Compatibility Checkerの使い方
PHP Compatibility Checkerの使い方はかなりシンプルです。確認していきましょう。
既存のプラグインやテーマの互換性を調べる
現状WordPressで導入しているプラグインやテーマが、最新のPHPバージョンに対応しているのかを確認します。
まずPHPバージョン欄を、変更したい最新の「7.3」にチェックし、「有効化中のプラグインとテーマのみをスキャン」を選択します。
スキャンには割と時間がかかります。1プラグインにつき1〜2分ほど。僕は20分ほどかかりました。ですので有効化していないプラグインとテーマをチェックするのはやめておきましょう。
「互換性あり」と表示されたものは問題ありません! 最新のPHPバージョンに対応しています。
プラグインのSearch Regexのみ「警告」が出ました……。
警告された内容を確認すると以下のような内容でした。
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
————————————————————————————————
55 | WARNING | INI directive ‘safe_mode’ is deprecated since PHP 5.3 and removed since PHP 5.4
———————————————————————————
php.iniファイルの中の「safe_mode」の記述が、5.3のバージョンから非推奨になり、5.4から取り除かれた、ということらしいです。エラーメッセージを検索にかけると、同様の指摘を受けているケースが見られました。色々調べたところ変更しても時に大きな問題はなさそう(常時使っているプラグインでもない)だったので、今回はそのまま進めることに。
※PHPの公式サイト:セーフモード
※参考事例:INI directive ‘safe_mode’ is deprecated since PHP 5.3 and removed since PHP 5.4.
削除された関数が使われているプラグインの場合、最新のPHP環境で動作しなくなる可能性もありますので、エラー内容の意味や対処法が分からない場合はとにかくググりましょう!
レポート内容のダウンロードも可能
レポート内容は、テキストファイルで一括ダウンロードすることも可能です。チェックする項目が多い場合は使ってみてください。
警告やエラーが出た時の対処法
もし最新のPHPバージョンとの互換性について警告が出た場合は、主に下記の方法で対処します。
- そのプラグインやテーマを最新のバージョンにUPする
- そのプラグインやテーマを削除する
- 別の互換性のあるプラグインやテーマに切り替える
- どうしても使いたいプラグインやテーマの場合、いったん保留にして最新のPHPに対応するのを待つ
サイトで導入しているプラグインやテーマは、事前に最新のバージョンに更新しておきましょう。一度警告がでても、バージョンを更新すれば最新のPHPに対応しているケースも多いです。更新がもう数年されていないプラグインなどはそもそも使うのは控えたいところ……。
また警告がでているプラグインは、本当に必要なのか改めて精査しましょう。なくても問題なければ思い切って削除するか、他に同様の機能を備えた最新のPHPに対応しているプラグインに切り替えるのも選択肢です。
自分でプラグインやテーマのエラー箇所を修正する手段もありますが、開発の知見・スキルのある方以外は控えましょう。
PHP Compatibility Checkerの注意事項
PHP Compatibility CheckerのWordPress公式サイトでは、下記の注意事項を掲載しています。
このプラグインはできる限り多くの問題を正確に検出するよう作成していますが、100%確実な検出は非常に困難です。新しい PHP バージョンに移行する前に、総合テストの実施をお勧めします。
引用元:https://ja.wordpress.org/plugins/php-compatibility-checker/
このプラグインでは、下位互換で使用する未知のコード/パスを互換性無しと判定することがあります。誤判定の可能性があるプラグインは、プラグインのホワイトリストにまとめてあります。
引用元:https://ja.wordpress.org/plugins/php-compatibility-checker/
WordPressの動作環境はサイトによってそれぞれ異なります。PHP Compatibility Checkerといえども、さすがに100%の精度でエラーを検出することは難しいので、実行前に必ずデータのバックアップを取り、バージョンアップデートした後もエラーが発生していないかサイトを隈なくチェックすべきでしょう。
誤判定の可能性があるプラグインのホワイトリストも事前に目を通しておくことをおすすめします。
https://github.com/wpengine/phpcompat/wiki/Results
実際にさくらサーバーでPHPのバージョンアップをしてみた
ということで、PHPのバージョンアップを実際にしてみました!
必ずバックアップを!
バージョンアップの前に必ずデータのバックアップを取っておきましょう!バックアップについては以下のプラグイン「UpdraftPlus」がおすすめです!
サーバーの管理画面から切り替え
さくらサーバーの管理画面へ移行し、バージョンを切り替えます。新しいバージョン欄をPHP 7.3でチェックし変更をクリックします。
すると、もうPHPが最新バージョンに切り替わってました!切り替え自体はかなり簡単でした。もちろん使っているサーバーによって異なりますので、改めて下記公式サイトをご確認くださいませ。
切り替え後はエラーが起きていないか、サイト全体を必ず確認しておきましょう!
PHP Compatibility Checkerを有効活用しよう!
PHPのバージョンを切り替えることで処理速度の改善が期待でき、セキュリティも高まりますので、まだ5系を使っている方はできる限り最新の7系に切り替えましょう!
PHP Compatibility Checkerを活用すれば、事前にPHPの互換性を確認でき問題が発生するのを回避できます。ただしエラーの特定が漏れる場合もあるので、必ず事前にバックアップを取っておくことをおすすめします。
また今回はサイトスピード改善の一環としてPHPのバージョン更新をしたのですが、スピード改善で実施した施策とスコアの検証結果については、下記の記事で全てまとめていきます。よかったら施策の参考にしてみてください。それでは!
下記記事では、WordPressのおすすめプラグインを厳選して紹介しています ↓↓