「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」と出たときの対処法

WordPress
この記事は約4分で読めます。
スポンサーリンク

このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。というエラーメッセージが出たときの対処法

pluginの問題を疑う

このエラーの場合、pluginが悪さをしていることがほとんどなので、pluginのどれかが正しく動作していないことを疑います。

まずは、全部のpluginを無効化しましょう。

FTPツールなどでサーバーに接続し、サーバー上(ほんとうはローカルに環境を持ってきて解決するのが一番ですが)の「plugin」フォルダをリネームします。適当に「00plugin」などとしておけば良いでしょう。

これで、pluginを見に行ってみると、pluginが無効化されていることが確認できることと思います。

pluginが読み込めないなどのメッセージが出ていると思うので、もう一度、pluginのボタンを押します。すると、pluginの有効化、無効化が行える状態になっていると思います。

そこで、ひとつずつ、これは安全だろうと思われるpluginを有効化していきます。

再び、「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」のエラーが出たら、そのpluginが悪さをしているということがわかります。

wp-config.phpでデバッグモードに切り替える

ここで、wp-config.php内の、

define( 'WP_DEBUG', false );

を、デバッグモードに切り替えます。具体的には、「false」を「true」に変更します。そして、FTPツールでファイルをアップロードする際には、サーバー上のwp-config.phpの属性値を0400から0604に変えておきます。

define( 'WP_DEBUG', true );

この状態で、エラー画面をリロードしてみましょう。

何かエラーが出ませんか?

僕の場合次のようなエラーがでました。

WordPress データベースエラー: [Duplicate entry '0' for key 'PRIMARY']

INSERT INTO `wp_actionscheduler_actions` (`hook`, `status`, `scheduled_date_gmt`, `scheduled_date_local`, `schedule`, `group_id`, `args`) VALUES ('action_scheduler/migration_hook', 'pending', '2022-06-07 01:38:17', '2022-06-07 10:38:17', 'O:30:\"ActionScheduler_SimpleSchedule\":2:{s:22:\"\0*\0scheduled_timestamp\";i:1654565897;s:41:\"\0ActionScheduler_SimpleSchedule\0timestamp\";i:1654565897;}', '2', '[]')

このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。

「[Duplicate entry '0' for key 'PRIMARY']」、ここに注目してください。これは、プライマリーキーという、たったひとつを示す値に重複して上書きをしようとしたことが原因ということを表しています。

ここで、0番の内容をphpMyAdminを開いて確認してみました。どうやら、エラーログから「wp_actionscheduler_actions」の中で、そのプライマリーキーを0として登録をしようとしていることが伺えます。

確認してみると、データベース上でも同様の0番のデータがあることがわかりました。内容的にも一致していたので、0番のデータを削除することにしました。どうせ上書きされますしね。

※ここで注意が必要なのですが、データベースのバックアップは必ず取っておきましょう。

※さらに、phpMyAdminでデータベースを開き、該当するテーブルの「構造」を見てみましょう。「id」というものがあるはずです。これを「編集」し、「A_I」(Auto Increement:自動的に1ずつ足していく的な意味のもの)にチェックを入れて保存しておくことを忘れないようにしましょう。

そして、エラー画面を更新してください。

どうですか?

エラーはなくなったかと思います。

define( 'WP_DEBUG', true );

の内容を、あとは「true」から「false」へと変更して、終了となります。アップロード後、wp-config.phpの属性値を0400へ直すことも忘れないでおいてください。

define( 'WP_DEBUG', false );

白川秋
白川秋

これで完了です。最後までお読みいただき、有り難うございました。
応援いただけると、励みになります。

コメント