WordPressの健康診断「サイトヘルス」でホームページの健康度を数字で見よう! という記事でWordPressの「サイトヘルス」機能についてご紹介しました。致命的な問題やおすすめの改善の中にPHPに関するものがあったときは、サーバーからPHPのバージョンを上げることができるのですがバージョンを上げても大丈夫?と思ったときにそれをチェックするプラグインがあったのでそれを試してみました。
現在のPHP推奨バージョンを確認してみる
PHPはセキュリティや機能改善の観点からバージョンがどんどん新しくなっていきます。数年前まではPHP5.x系が主流のバージョンでしたが、2019年05月現在ではPHP7.x系のバージョンが主流となっています。
PHPのバージョンは
こちらの記事に書いたように、古い場合はサポートが終わってしまっているものもあります。現在の情報を確認してみます。
※ http://php.net/supported-versions.php 参照
下の図で数字部分が赤くなっている5.5、5.6、7.0はセキュリティサポートも終わった状態ということがわかります。
同じ図で数字部分が黄色になっているものは7.1で現在はセキュリティサポート中、ということになります。
また現在アクティブサポート中のバージョンは7.2、7.3となります。
上のマトリックスではこの状態を文字で表していて、7.1のセキュリティサポートは2019年12月1日までということです。とうことは2019年12月1日までにはそれ以上のバージョンのPHPに変えたいところです。
PHPのバージョンで最新のものは7.3となります。できればこのバージョンに上げれば2021年12月6日まではセキュリティサポートがされるということで安心なのですが問題もあります。
PHPはバージョンが上がると中身も新しいものが追加されたり、過去の関数などから削除されるものも出てきます。そうなるとPHPのバージョンが古い頃に書いたPHPプログラム内に「新しいバージョンでは削除されている関数など」を使っている場合エラーが出るという可能性が出てきます。バージョンがよほど飛ばなければ、致命的なエラーにはならないと思いますが警告レベルのエラーが出る可能性があります。
PHPはプラグインやテーマでも使われていますので、それらのPHPが新しいバージョンでもちゃんと動くかどうかを、PHPのバージョンを上げる前に知りたいと思います。
PHP Compatibility Checkerをインストールする
ということでプラグインPHP Compatibility Checkerを使って使っているプラグインやテーマがPHPの新しいバージョンに対応しているかをチェックしたいと思います。
ダッシュボード プラグイン>新規追加 をクリック
PHP Compatibility Checkerと入力すると
このプラグインが見つかりますので、今すぐインストールをクリック
有効化をクリック。これでインストールが終了です。
PHPのバージョンを指定して、プラグインやテーマが対応しているかチェックする
プラグインやテーマが対応しているかチェックしたいと思います。
ダッシュボード ツール>PHP Compatibility をクリック
このような画面が表示されます。
このプラグインでチェックできる一番新しいバージョン7.2にチェックを入れて、サイトをスキャンをクリック
このような表示が出て、今どのプラグインやテーマをスキャンしているかがわかります。
このプラグインはPHPファイルを全部チェックすると思うので、少し時間がかかりました。入っているプラグインの数などによって違うかと思いますが、私の場合は5分以上かかったと思います。
終了すると、
このように結果が表示されました。エラーで警告があったのが、all-in-one WP Migrationというプラグインだけでした。
詳細切り替えをクリックすると、
このように、エラーの内容が表示されました。mysql周りのコードに古いものがあったようです。
all-in-one WP MigrationはWordPressで作ったホームページ全体をバックアップして、インポートするためのツールです。すでにこのプラグインはPHP7.2で使っているのですが、今のところエラーで止まったり、正常な動作でないということは起こっていません。いつかプラグインがアップデートされると良いのですが、この場合でしたら常に動いている必要はないのでこのプラグインは停止しておけば良いのかなと思われます。
今回の場合、この1つしかエラーがなくこの場合は「アップデートしても問題ないな」という自己判断をしました。可能であればエラーがない状態でのPHPのバージョンアップをすべきと思います。
というように、PHPのバージョンを上げるかどうか?という判断にこのPHP Compatibility Checkerが役立つと思います。
補足:XSERVERで実行したときメールが来た
今回PHP Compatibility Checkerを使ってPHPのチェックをエックスサーバーとMixHostで行いました。XSERVERで実行したときのことなのですが、
[サイト名] サイトで技術的な問題が発生しています To staff こんにちは! WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。 今回の場合、WordPress がプラグイン PHP Compatibility Checker でエラーを捉えました。 まずはじめに、ご自分のサイト (https://example.com/) を開き、表示上の問題がないか確認してください。次に、エラーが発生したページ (https://example.com/wp-cron.php?doing_wp_cron=1558505453.3180129528045654296875) を開き、表示上の問題がないか確認してください。 この問題をさらに調査するにはサーバーホストに連絡してみてください。 もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別なリカバリーモードがあります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。 https://example.com/wp-login.php?action=enter_recovery_mode&rm_token=qlnySCslnBmq3bmm4GjWFW&rm_key=7SWQiIgHx9zmeL2fkMKbp0 サイトを安全に保つため、このリンクは 1日 で有効期限が切れます。とはいえご心配なく。有効期限後でもこのエラーが再度発生すれば新しいリンクが送られてきます。
こんな感じのメールが来ました。まだPHP Compatibility Checkerを実行中にこのメールが来たので、エラーで停止してしまったのかと思ったんですが結局それ以降もチェックが続いて正常にチェックは終わりました。気になったのでWEBサイトやダッシュボードなどもチェックしてみましたが特に何も問題は起こっていませんでした。
メールのURLから情報を見たら、実行時間がとても長くそれが検知されて、WordPress5.2からの新しいプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が動いたようです。
うーん?と思いつつ、特に問題はなかったのでこのままでいいのかなと思いました。サーバーや設定によって実行時間のmaxが異なったりするのでXSERVERだから、とかmixhostだからという意味ではないはずです。ということですが一応こういうことがあったなーということを書いておきます。
PHPのバージョンを上げるのはレンタルサーバー側で行います
チェックの結果、問題ないとなった場合はPHPのバージョンを上げるということになるかと思います。今現在、自分が借りているエックスサーバーとMixHostではPHPの最新バージョンは7.2.x系となっています。
前回、
こちらの記事で書いたように、WordPressはPHP7.3.x以上にした方がいい(おすすめの改善点が表示される)と思っているように思えます<(^_^;)あいまいですが。
しかし、使っているサーバーでPHP7.3.xが選択できない場合は上げようがありませんのでとりあえずPHP Compatibility CheckerでチェックOKとなったバージョンまで上げるのがいいかと思います。
今回PHP Compatibility Checkerを試すために自分のあるサイトを見てみたのですが、なんと
php5.6のものがありました(>_<)。サイトヘルスステータスも
1件の致命的な問題 お使いのPHPバージョンは更新が必要ですと表示されてしまっていました。
このサイトはMixHostで借りているものだったので、cPanelからログインして
Select PHP Versionをクリック
7.2を選択して
Set as currentをクリック。これでバージョンが上がりました。
サイトヘルスステータスも
このように致命的な問題はなくなりました。
このサーバーはだいぶ前に借りたもので、新しいものとは方法も違うようなので詳しくは、
こちらをご覧ください。
エックスサーバーの場合は、XSERVER:PHPのバージョンについて こちらに方法が載っています。
それ以外のサーバーの場合は「サーバー名 PHP バージョン変更」で検索をするとマニュアルが見つかると思います。
コメント