WordPressでPHPのバージョンアップ後、エラーで見れなくなった場合

PHPのバージョンアップ後に、「このサイトで重大なエラーが発生しました」

PHPを7.3から7.4や8.0にバージョンアップしたら、Wordpressがあるコンテンツが「このサイトで重大なエラーが発生しました」と表示されて、サイトが閲覧できなくなりました。バージョンアップ前のPHPのバージョンに戻してもサイトが閲覧できないままで、どうしようかと思いましたが、解決方法がありましたので、紹介します

「リカバリーモード」でプラグインを無効にする

上記のように、サイトが閲覧できなくなると、管理者宛にメールが届いている場合があります。
そのメールの下部にエラーの原因もありますので、そのエラーの原因を確認するとはMemcached に関するプラグインが原因でした。

プラグインを無効にすれば、閲覧できる状態になりそうなので、メール内にある「リカバリーモード」でアクセスする必要があります。URLのリンクがあるので、そちらにアクセスします。

リカバリーモードで管理画面にアクセスしたら、バージョンアップしたら対応していないプラグインをありますので、そちらを無効にすればサイトは閲覧可能になりました

CUI環境でプラグインを無効にする

リカバリーモードのURLにアクセスしてログインしても「このサイトで重大なエラーが発生しました」に戻ってしまう場合あります。その場合は、SSHでログインしてプラグインがあるディレクトリをリネームすると、プラグインを一括で無効化できますので、リカバリーモードでの管理画面にアクセスでき場合は、CUI環境で対応してもいいかと思います。

SSHでのCUI操作を紹介していますが、SSHを利用できない場合はFTPやSCPでダウンロードして、プラグインのディレクトリリネームして対応もできます

1.プラグインがあるディレクトリをリネームします

# wordpressがインストールされているディレクトリに移動します
$ cd /var/www/html/wordpress

# 「wp-content/plugins/」のディレクトリをリネームします
$ mv wp-content/plugins wp-content/plugins_bak

2.WordPressにあるWEBページにアクセスして、エラーが無いか確認します。また管理画面にアクセスできることも確認します

3.WEBページが閲覧できたら、以前にインストールしているプラグインが原因ですので、エラー原因になっている以外のプラグインを「wp-content/plugins/」にコピーしていきます

4.「wp-content/plugins/」がリネームして無くなっているので、作成します

# 「wp-content/plugins/」を作成します
$ sudo mkdir wp-content/plugins/

# 「wp-content/plugins/」の所有者をApache等に変更します
$ sudo chown apache:apache wp-content/plugins/

5.以前のプラグインをコピーしていきます。

# プラグインの内容を確認します
$ ls wp-content/plugins_bak/
akismet             classic-editor             index.php       wordpress-importer
amp                 crayon-syntax-highlighter  mw-wp-form      wordpress-ping-optimizer
boxers-and-swipers  google-sitemap-generator   pixabay-images 

# 個別にコピーしていきます
$ sudo cp -pr wp-content/plugins_bak/akismet wp-content/plugins/

6.コピー後に、プラグインを有効にしてWEBページが閲覧できたら、そのプラグインは問題ないので、次々へとコピーしていきます。

7.エラー原因となるプラグインをコピーした場合は、WEBページは閲覧できないので、そのプラグインを「wp-content/plugins」にコピーしないようにします

8.エラー原因以外のプラグインをコピーできたら、エラーになったプラグインの対応は終わります