WordPressサイトのPHPを8.0に変更すると重大なエラーが出る

サイトのPHPのバージョンを7.4から8.0にアップデートしたタイミングで管理画面にログインできなくなくなるというトラブルに遭遇しました。

調査の結果、原因は「Search Regex」プラグインでした。

PHP8.0に変更するとワードプレスに重大なエラー

PHPのバージョンを上げるには勇気が要るのですが、いつまでの上げないわけにも行かないので、このサイトでPHP7.4からPHP8.0へアップグレードしてみました。

結果は管理画面にログインできなくなりました。

WordPressでエラーが発生すると管理者として登録してあるメールアドレスにメールが送信されてきます。

それを確認すると

こんにちは。

WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。

今回の場合、WordPress がプラグイン Search Regex でエラーを捉えました。

この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション5.8.1
現在のテーマ: XXXXXX (バージョン 3.0)
現在のプラグイン: Search Regex (バージョン 2.4.1)
PHP バージョン8.0.8
エラー詳細
===============
エラータイプ E_PARSE が /XXX/wp-content/plugins/search-regex/models/search.php ファイルの 322 行目で発生しました。 エラーメッセージ: syntax error, unexpected token “::”, expecting “(”

というエラーが出ていました。

ということで、PHP8.0でエラーになっているのは「Search Regex」プラグインのようです。

Search Regexプラグインの削除

記事の内容の検索や置換などで便利なプラグインなのですが、エラーになるのはまずいので一旦削除することにします。

今のままではWordPress管理画面にログインできないので、一旦、レンタルサーバー上で設定したPHP8.0をPHP7.4に戻します。

10分ほどすると変更が反映され、無事WordPressにログインできました。

残念ですがここでSearch Regexプラグインは一旦無効化したあと、削除しました。

で、再度レンタルサーバーのPHP7.4をPHP8.0へバージョンアップ。

今度は無事ログインできました。

PHPのバージョンを戻せない場合

何らかの都合でPHPのバージョンを戻せない方は、以下の方法でプラグインを無効にできます。

プラグインを無効化する方法
  • STEP.1
    FTP接続する
    レンタルサーバーのツール等でFTPでサーバーへログインする
  • STEP.2
    WordPressをインストールフォルダー以下にあるwp-content/pluginsへ移動する
  • STEP.3
    フォルダー名変更 or 削除
    移動先にあるsearch-regexフォルダーの名前を変更するか、フォルダーを削除する

これで、再度ログインするとSearch Regexプラグインが無いものとして動作するので、ログインが可能になります。

まとめ

今回はPHP8.0でWordPress管理画面にログインできなくなった原因はSearch Regexプラグインでした。

例えエラーになったとしても対策方法はあるので慌てず対応するようにしましょう。

タイトルとURLをコピーしました