WordPressサイトのダウンほど、恐ろしいものはありません。「サイトに重大なエラーがありました。」という警告メッセージが表示されると、なおさらです。
サイトにアクセスできなくなり、フロントエンドが完全にダウンしてしまった場合、重大なエラーをすぐさま解決しなければなりません。1秒でも早く解決しなければ、エラー画面を目にした訪問者は、どんどん離れていってしまいます。
幸い、このエラーは大抵、PHPの関数を少し追加したり、問題のあるプラグインを削除したりするだけで解決できます。今回は、このエラーに対処し、サイトを素早く元通りにするための様々な対処方法をご紹介します。
「このサイトで重大なエラーが発生しました」エラーの解決方法について動画での解説もご用意しています。
「このサイトで重大なエラーが発生しました」エラーの原因
WordPressを長いこと使っている方は、よくある画面が真っ白になるエラーについて、一度は耳にしたことがあるはず。あるいは、実際に経験したことがある方もいるかもしれません。この、思わずどっきりするエラーが起きると、サイト全体で(時にはバックエンドまで)画面が真っ白になってしまいます。
WordPressの直近のバージョンでは、この真っ白な画面のエラーが「サイトに重大なエラーがありました。詳細については、サイト管理者のメール受信ボックスを確認してください。」という警告メッセージに変わりました。
全く画面が読み込まれないのに比べると、「ある程度はパニックを引き起こしにくい」かもしれませんが、エラーメッセージは依然としてあまり役に立ちません。きっと「一体何が重大なエラーを引き起こしているのか…?」という疑問が浮かんでくるでしょう。
画面が真っ白になるエラーと同様に、多くの場合、PHPに関する問題が原因です。メモリ上限を超過した、コード、プラグイン、テーマに問題がある…などの理由が考えられます。また、データベースの破損が原因のこともあります。
エラーメッセージから、多くの情報は手に入りませんが、考えられる原因を頭に入れておけば、問題解決がスムーズになるはずです。
他にも次のようなWordPressのエラーに遭遇するかもしれませんので、ご紹介しておきます。
- ERR_CONNECTION_TIMED_OUT — 速度の遅い、または負荷が高すぎるWebサーバーが原因で発生します。
- ERR_CACHE_MISS — このエラーが発生した場合、サイトのキャッシュもしくはプラグインなどのPHPツールが原因の可能性が高いのでそれらを確認しましょう。
- 500 Internal Server Error — サーバーファイルの破損が原因である可能性の高い、深刻なエラーです。
- Error Establishing a Database Connection — データベースの破損もしくはデータサーバーに関する問題が原因である可能性があります。
- HTTP 503 Service Unavailable — サーバーに関する問題が発生していることを意味します。
- HTTP 502 Bad Gateway — こちらもサーバーに関する問題です。訪問者が多く負荷が高すぎる場合によく発生します。
これ以外のエラーが発生した場合、こちらのHTTPステータスコードに目を通してみてください。
「このサイトで重大なエラーが発生しました」エラーの解決方法
サイトを復旧させるためにこの記事をご覧いただいている方のために、今回は考えられるエラーの解消方法をいくつか検討します。原因はPHP関連の問題である可能性が高いということは、WordPressコアファイルを編集しなければならないこともあります。例えサイトが既に破損しているとしても、さらに状況が悪化しないように、トラブルシューティングの前に必ずサイトをバックアップしましょう。
サイトのバックエンドにログインできる場合、トラブルシューティングが非常にスムーズになります。しかし、サイト全体がダウンしていることが多いため、おそらくFTP(またはSFTP)を介してアクセスする必要があるでしょう。
レンタルサーバーに問い合わせるか、管理画面からFTPのログイン認証情報を探しましょう。また、FileZillaなどのFTPクライアントソフトを忘れずにご用意ください。SFTPを使用したWordPressサイトへの接続方法も参考になるはずです。
WordPressでデバッグモードを有効にする
WordPressで問題が発生した場合、まずデバッグモードを有効にする必要があります。デバッグモードを有効にすると、サイトで発生している様々なPHPエラーを確認し、そこから根本の原因を辿ることができます。
管理画面にアクセスできない場合、デバッグのログも有効にする必要があります。そうすることで、全てのPHPエラーがファイルに保存されます。
Kinstaのお客様の場合、MyKinstaからデバッグモードを簡単に有効化できます。管理画面を開き、「サイト」>「ツール」へと進み、「WordPressデバッグ」の「有効化」をクリックします。すると、サイト全体を見渡し、問題の原因を探ったり、ログを確認したりすることができます。ご自身だけでなく、訪問者にも表示されてしまうので、完了したら必ずデバッグモードを無効にしてください。
デバッグモードを手動で有効にする必要がある場合や、デバッグのログにアクセスしなければならない場合は、次の手順に従って進めましょう。
- FTP経由でサイトへ接続。
- ルートフォルダからwp-config.phpを探し、テキストエディタまたはIDEで開く。
- 次のコードをファイルの末尾(コードの終了を示すメッセージの真上)に追加。ファイルを保存して閉じる。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );
次のようになるはずです。
これでサイトのデバッグモードが有効になり、エラーがログに保存されます。デバッグのログはwp-contentフォルダ内にdebug.logという名前で保存されます。
問題の原因として特定のテーマやプラグイン名が記載されていたり、特定のファイルが参照されていたりしないか探してみましょう。これらの情報をどう扱うべきか分からない場合でも、どこかに保存しておくとサポートに問い合わせる際に役立ちます。
デバッグが完了したら、先ほどのコードを必ず削除してください。
サイトのバックアップを復元する
WordPressのエラーが発生した際、バックアップを復元するだけで簡単に解決することもあります。必ずうまくいくとは限りませんが、試してみる価値はあるでしょう。また、問題が再度発生した際に、行った操作を辿ることができるかもしれません。
サイトの復元方法は、バックアップをどのように行ったかによって異なります。プラグインを使用した場合は、その説明に従って復元しましょう。レンタルサーバーのプランにバックアップが含まれている場合、その管理画面から復元ができるはずです。
例えば、Kinstaの場合、MyKinstaにログインし、「サイト」メニューからサイトを探し、「バックアップ」タブを開き「復元先を選択」をクリックします。
本番サイトで復元を行う前に、ステージングサイトでテストを行い、サイトが正常に機能することを確かめましょう。これにより、せっかく加えた変更を上書きしてしまう事態を防げます。
デフォルトのテーマに戻す
重大なエラー発生の原因として、テーマの互換性も考えられます。これを確認するには、利用中のテーマを一度削除し、デフォルトのテーマに戻すのが一番です。テーマが原因であれば、こうすることですぐにエラーが解消するはずです。
エラーが解消した後にテーマファイルを元に戻せるよう、最初にサイトをバックアップするのをお忘れなく。単にテーマを再インストールするだけでは、ご自身で加えたデザインへの変更が失われてしまう可能性があります。
WordPress管理画面にアクセスできる場合は簡単です。「外観」>「テーマ」を開き、テーマを選択してクリックし、開いた画面の右下にある「削除」をクリックします。
選択できるテーマが他にない場合は、別のテーマをダウンロードして変更してみましょう。確実なのは「Twenty Twenty-One」などのデフォルトを使用することです。
バックエンドにアクセスできない場合、次の手順でFTPを使ってデフォルトのテーマに戻すことができます。
- ステップ1: FTPを使ってサイトに接続。
- ステップ2: wp-content/themesを探し、テーマのフォルダ名を変更するか、削除する(名前を変更した場合、後でテーマを元に戻すことができます)。
- ステップ3: バックアップ用のテーマを用意していない場合、手動で「Twenty Twenty」をダウンロードし、ファイルをthemesフォルダに保存する。
これでサイトのテーマは「Twenty Twenty」に戻るはずです。正常に読み込めたら、テーマの互換性の問題であったことが分かります。
テーマファイルを復元するには、テーマを再インストールするか、フォルダ名を元に戻しましょう。
すべてのプラグインを無効にする
プラグインが重大なエラーの原因であることは、非常に一般的です。サイトでたくさんのプラグインを使用している場合、問題の発生源となっているものを特定するのはなかなかの手間に思えるはずです。
しかし、簡単に見つけられる方法が存在します。全て無効にしてみて、問題が解決するかどうか確認してみましょう。エラーが解消した場合、一つずつ有効にしていき、再びエラーが発生するまで続けます。エラーが発生したものが問題のプラグインです。
管理画面からプラグインを無効化するには、「プラグイン」>「インストール済みプラグイン」を開き、最上部のチェックボックにチェックを入れて全てを選択します。「一括操作」>「無効化」をクリックすると、全ての互換性の問題が解消され、サイトが復旧するかもしれません。
「削除」をクリックしてファイルを完全に削除することもできますが、その場合一つ一つ再インストールするかバックアップを復元しなければなりません。
次に、「インストール済みプラグイン」に戻り、一つずつ「有効化」をクリックしていきます。
同様の操作はFTPからも行うことができます。
- ステップ1: FTPでサイトへログイン。
- ステップ2: wp-contentフォルダを開きプラグインを探す。
- ステップ3: 「plugins」フォルダの名前を「plugins_old」に変更し、サイトが正常に動作するか確認する。
- ステップ4: フォルダ名を「plugins」に戻す。プラグインは無効化されたままなので、管理画面へログインし、一つずつ有効化していくことができるはずです。プラグインが自動で再び有効化する場合、サイトが復旧するまで個別のプラグインフォルダの名前に「_old」をつけて変更していきます。
PHPメモリ上限を引き上げる
プラグインやテーマがサイトの破損を引き起こしている場合でも、真の原因は PHPのメモリ上限であることがあります。
PHPのメモリ上限とは一体何でしょうか?ウェブサーバーのRAM(メモリ)は決まっているため、個別のPHPスクリプトに割り当てるメモリには上限が設定されています。上限を超えると、真っ白な画面や、重大なエラーのメッセージが表示されます。
メモリ上限をあまりに高く設定すると、不適切なスクリプトによりサイトが非常に遅くなってしまいますが、デフォルトの値が低すぎる可能性もあります。少しだけPHPの上限を引き上げることで、サイトの破損をすぐに修正できる場合があります。
- ステップ1: FTP経由でサイトにアクセスし、wp-config.phpを開く。
- ステップ2: 最後の行の直前に次のコードを挿入して保存する。
define( 'WP_MEMORY_LIMIT', '128M' );
問題が解決しない場合、256Mへ変更してみてもいいですが、プラグインの説明の中で指示がある場合を除き、それより高い値に設定するのは、普通意味がありません。それでもメモリ上限の問題が見られる場合、プラグインがおそらく破損しているので、無効化すべきです。
【補足】レンタルサーバーによっては、メモリ上限が非常に低く、引き上げることができない場合があります。この場合、レンタルサーバーを変更するか、問題の原因となっているプラグインを削除するしかありません。
Kinstaでもメモリ上限を設けていますが、その設定値は256Mとなっています。Kinstaのプランで利用可能なプラグインであれば、まず問題は発生しないはずです。
最大アップロードサイズと実行時設定の上限を引き上げる
重大なエラーのメッセージが、常に全ての画面で表示されるのではなく、特定の状況下でのみ表示される場合、PHP関数を少し編集するだけで問題が解決する可能性があります。
サイズの大きなファイルをアップロードした際にエラー画面が表示される場合は、最大アップロードサイズの設定値が低すぎる可能性が高いです。もしくは、再帰処理とバックトラック処理の上限を引き上げることでサイズの大きなページのエラーを解決できることもあります。
まず、アップロードしようとしているファイルのサイズと最大アップロードサイズの設定値を比較してみましょう。「メディア」>「新規追加」を開き、画面下を見ると分かります。
この問題を解決するにはFTPにログインし、wp-config.phpファイルの最後の行の直前にコードを追加します。
最大アップロードサイズを引き上げるには次のコードを追加します。
ini_set('upload_max_size' , '256M' );
ini_set('post_max_size','256M');
サイズの大きなページの破損を修正するには次のコードを追加します。
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
サイトのキャッシュを削除する
キャッシュはサイトのスピードを改善するのに非常に有効で、基本的には推奨されます。しかし、時にキャッシュが問題となり、サイトでエラーが発生することがあります。
その場合、最もシンプルな解決策はキャッシュの削除です。それだけで問題が解消し、サイトが正常に復旧するかもしれません。
キャッシュの「削除」と言っても、ご安心を。ページはすぐにキャッシュされ、再び素早く読み込まれるようになります。キャッシュを削除することによって、問題となっている破損したファイルを削除する狙いがあります。
MyKinstaでは、「サイト」>「ツール」を開き、「サイトキャシュ」にある「キャッシュをクリア」をクリックするとサイトのキャッシュを削除できます。
他のレンタルサーバーや、キャッシュ系プラグインをご利用の場合は、該当のドキュメンテーションをご覧ください。詳しい説明が載っているはずです。
PHPをバージョンアップする
PHPバージョンが古いことがサイト破損の原因であることもあります。また、その他の互換性の問題も間違いなく発生します。通常、WordPressがサポートしている最新のPHPバージョン(現在はPHP 7.3 to 8.0)にバージョンアップしておくべきです。
テーマやプラグインの互換性への懸念から、PHP 7.4を使用したい方もいるかもしれません。通常、これは大して問題にはなりません。しかし「PHP 5.x」を使用している方は、重大な問題が発生する可能性があるため、必ずバージョンアップが必要です。
PHPのバージョンアップは大きな変更ですので、実行する前に必ずサイトをバックアップしましょう。
Kinstaのお客様は、MyKinstaから簡単にPHPをバージョンアップできます。ログインして、「サイト」>「ツール」を開き、「PHPエンジン」メニューの「変更」をクリックします。変更したいバージョンを選択してしばらく待つと、それが適用されます。
Kinsta以外をお使いの場合、PHPのバージョンアップ方法はレンタルサーバー次第です。問い合わせて確認してみましょう。
マルウェアをチェックする
重大なエラーの原因がマルウェアであることもあります。プラグインやテーマのものではない、奇妙なPHPスクリプトが見られる場合、特にその可能性が高いです。マルウェアの削除は、特にウェブサイトにアクセスできずサイトのスキャンもできない場合、かなり大変な作業になります。
正常なファイルとマルウェアによって追加された不審なファイルを見分けるのは、時に困難です。そして、本体のファイルを削除してしまうと厄介なことになります。マルウェアはPHPファイルを変更し、スクリプトを「こっそり忍ばせる」ことがあるため、開発者でないと気がつくのは至難の業でしょう。
マルウェアが原因である疑いが強い場合、レンタルサーバーに助けを求めるのがおすすめです。
それでもエラーが解決しない場合
上記を全て試したにも関わらずエラーが解消しない場合、かなり深刻な問題が発生している可能性があります。そんな時は、レンタルサーバーに問い合わせ、問題の特定と解決の手助けをしてもらいましょう。良心的なレンタルサーバーであれば、サイトを復旧できるよう、親身になってサポートしてくれるはずです。
Kinstaでは、すべてのプランで年中無休のWordPressに関するリアルタイムチャットサポートをご提供しています。サポート機能は管理画面である「MyKinsta」に統合されているので、いつでもワンクリックでお問い合わせいただけます。迅速に(通常2分以内)応答いたしますので、サイトがダウンした状態で、何時間も待つ必要はありません。
今回のエラーに関しては、どのようなサポートが受けられるのでしょうか?Kinstaでは、今回のエラーを含めサイト上でエラーが発生した場合、技術的なサポートをご提供しています。どのファイル、もしくはプラグインが問題を引き起こしているのか、特定するお手伝いをいたします。
実際の操作はお客様ご自身、もしくはお客様より開発者に依頼した上で、行っていただく必要がありますが、お問い合わせ頂きましたら、サポートエンジニアよりその手順をご説明します(例えば、FTPを使用してファイルへアクセスする方法など)。
全てのプランで、分け隔てない(皆様に対して同じレベルでの)サポートをご提供しています。優先サポートや、特定のお客様専用のサポートは設けておりません。重大なエラーのメッセージが表示されてお困りでしたら、お気軽にKinstaのサポートにお問い合わせください。
まとめ
WordPressの「重大なエラー」のメッセージが表示された場合、いくつかの原因が考えられますが、多くはPHPに関するものです。PHPのメモリ上限を超過しているか、プラグインやテーマに問題があるパターンが大半です。
バックアップをとっていれば、最も手っ取り早いのはサイトを復元すること。それ以外にも、PHPのメモリ上限を引き上げる、問題のプラグインを特定し無効化するなど、様々な解決方法が考えられます。
問題を解決するには、通常、いくつかの方法を試してみる必要があります。ご自身で解決できないこともあるでしょう。しかし、ご安心ください。そんなときには、Kinstaをはじめ、ご利用のレンタルサーバーのサポート窓口に問い合わせてみましょう。悩んだ場合には、プロに頼るのが一番です。
また、サイトで頻繁にエラーが発生してお困りの方は、典型的なWordPressエラーの解決方法とトラブルシューティングについての包括的ガイド(扱う問題数65以上)もご覧ください。