本サイトではアフィリエイト広告を利用して商品を紹介している場合があります
先日WordPressのダッシュボードに『PHPの更新を推奨』というメッセージが出ていたため、サーバーのPHPを7.2から7.4へとバージョンアップすることにしました。
更新後ブログの動作確認をしたところ、
ブログのページ上部に『サイトに重大なエラーがありました』みたいなエラーメッセージがぶわーーーーー!!と表示されているんです!なにこれ!!??なにが起きたの!?大パニック!
完全に表示がおかしくなってます。こんなにバグられたらめっちゃ冷や汗出ますよ……なんたって初めてPHP更新してこのエラー祭りですから。
とにかくこの問題を解決しなきゃ!ということでなんとか調べて解決に至りましたので、その対策法を備忘録として残しておきます。
同じエラーメッセージが出てお困りの初心者さんのお役に立てたら嬉しいです。
エラーが出たら一度『旧バージョン』に戻す
私の様にブログがエラーメッセージまみれになってしまったものの、すぐに対処できそうもない場合は一旦ちゃんと動作していた旧バージョンのPHPに戻してから対策法を考えるのも手です。
私はエラーメッセージを確認した後、自分ではすぐに解決できそうもなかったので7.4から7.2へとバージョンを戻しました。
これ自体は根本的な解決にはなりませんが、ひとまずブログが正常な状態に戻ります。自分自身も大パニックから一度解放されます(これ大事)。
落ち着きを取り戻したうえで、じっくりと解決策を調べましょう。
プラグインやテーマに互換性があるか事前に調べる
どうやらPHPの更新でエラーが出てしまう最大の要因は
現在使用しているプラグインやテーマが、新しいバージョンのPHPに対応していない
ことのようです。
旧バージョンでは問題なく動いていたとしても、プライグインやテーマが新しいバージョンのPHPに対応していないとこのようにエラー祭りが発生してしまう要因となってしまうんですね。
この問題を解決するためには事前にPHPの互換性を確認しておくことが大事になってきます。
互換性を調べるには『PHP Compatibility Checker』というプラグインが大変便利です。
こちらのプラグインでは現在7.3までしか互換性を調べられませんが、とりあえず7.3以前のバージョンに問題のあるプラグインやテーマを見つけ出してくれるだけでもありがたいですね。
このプラグインを使ったところ、『Easy Table of Contents』というプラグインにエラーが起きていることを確認。
現在使用していないプラグインだったのでおもいきって削除しました。
日頃から使っていないプラグインは削除しましょうという教訓はこういうところで活きてくるんだなあと実感しましたね。
Easy Table of Contentsは目次を自動作成してくれるプラグインでしたが、有料テーマに切り替えてからは一切使用していなかったんです。
これ以外のプラグインやテーマには互換性があるようなので、もう一度PHPを7.4に更新してみることに。
事前に調べてもエラーが出る場合は
PHP Compatibility Checkerにて不要なプラグインは削除し、もう一度PHPの更新をしてみたところ、
やっぱりエラー祭りは止まりませんでした。
事前チェックをしているにも関わらず、他にもこっそりエラーを引き起こしている何かがあるというのか……。
恐る恐るエラーメッセージを確認してみると、どうやら『Crayon Syntax Highlighter』というプラグインがエラーの原因となっているようでした。
こちらはしばらく前に更新が止まっているプラグインですね。
このプラグインも現在使用していなかったので()削除します。
はい、これで2つ目のエラー要因を取り除きましたね。
もう一度ブログの動作確認を行ってみると……なんと!
エラーが消え、ブログが正常に動作していましたーーー!!
ぱちぱちぱちぱちぱち!!やったぜ!!
ということで原因さえ分かってしまえばPHP更新時にエラーが起きてしまっても、比較的初心者さんにも対処しやすい問題であることが判明しました。
まとめ
最後にPHPをバージョンアップした時に『サイトに重大なエラーが起きました』というエラーが起きてしまった時の対処法を再度まとめます。
- すぐに解決できそうもなかったら一度PHPを旧バージョンに戻す。
- PHP Compatibility Checkerを使って問題のあるプラグインやテーマを削除または使用停止する。
- それでもエラーが起きる場合はエラーメッセージに書かれているプラグインを見つけ、削除または使用停止する。
何がエラーを引き起こしているのか原因となるプラグインやテーマを見つけることが重要になってきます。
それと同時に、プラグインを日頃から定期的に見直しておくことも大事ですね。
私の様に放置をしていると、こういうところで面倒な問題を引き起こしがちです。古くなっているプラグインはエラーの要因になってしまうので、使っていないものについては削除か使用を停止しておくのがおすすめですね。