WEBデザイン

WordPress更新後に「重大なエラー」で管理画面に入れない|復旧手順と、更新前にやっておくこと

スポンサーリンク

「更新」を押した直後に、サイトが真っ白になった

WordPressの管理画面で「今すぐ更新」を押す。画面が切り替わる。そして次に出てくるのが、この一文です。

「このサイトで重大なエラーが発生しました。」

管理画面にも入れない。クライアントのサイトは表示されない。これは、Web制作に関わる人なら一度は経験する、心臓に悪い瞬間だと思います。

私も10年以上の間に何度か経験しましたし、同業者からの相談も定期的に受けます。この記事では、管理画面に入れない状態からの復旧手順と、そもそも起きないようにするために私が更新前にやっていることをまとめます。

スポンサーリンク

「重大なエラー」の正体は、ほとんどがPHPのエラー

真っ白な画面や「重大なエラー」の表示は、WordPressを動かしているPHPのプログラムが途中で止まったときに出ます。原因で多いのは次の3つです。

  1. プラグインやテーマが、新しいWordPress本体やPHPに対応していない
  2. サーバーのPHPバージョンを上げたら、古いプラグインが動かなくなった
  3. 更新の途中でファイルが壊れた(サーバーの容量不足や通信の中断)

つまり、ほとんどは「対応していないものが混ざった」か「更新が途中で止まった」かのどちらかです。復旧の考え方も、この2つに沿っています。

スポンサーリンク

復旧手順:管理画面に入れないときにやること

ステップ1:エラーメッセージを読む(メールも確認する)

WordPress 5.2以降では、重大なエラーが起きると管理者メールアドレスに「サイトで技術的な問題が発生しています」というメールが届きます。このメールには、原因になったプラグインやテーマの名前と、復旧モードで管理画面に入るためのリンクが書かれています。

まずこのメールを探してください。リンクから復旧モードに入れれば、原因のプラグインを停止するだけで直ることが多いです。

ステップ2:FTPやファイルマネージャーで原因のプラグインを止める

メールが届かない、復旧モードに入れない場合は、サーバーのファイルを直接触ります。

  1. FTPソフトか、レンタルサーバーのファイルマネージャーでサーバーに接続する
  2. wp-content/plugins/ の中にある、原因と思われるプラグインのフォルダ名を変える(例:plugin-name → plugin-name_off)
  3. サイトを再読み込みする

フォルダ名を変えると、WordPressはそのプラグインを「存在しない」と判断して無効化します。原因がわからない場合は、plugins フォルダ自体の名前を変えて全プラグインを止め、管理画面に入れることを確認してから、ひとつずつ戻していきます。

テーマが原因の場合は、wp-content/themes/ の中で、使っているテーマのフォルダ名を変えます。WordPressはデフォルトテーマに切り替わるので、管理画面に入れるようになります。

ステップ3:PHPバージョンを戻す

サーバーのPHPバージョンを上げた直後に起きたなら、サーバーの管理パネルからPHPのバージョンを元に戻します。これで復旧したら、原因は「新しいPHPに対応していないプラグインかテーマ」です。該当するものを更新するか、代替に乗り換えてから、改めてPHPを上げます。

ステップ4:WordPress本体を上書きする

更新の途中で止まった場合は、本体のファイルが中途半端な状態になっています。WordPress公式サイトから同じバージョンをダウンロードし、wp-content フォルダと wp-config.php 以外のファイルをFTPで上書きします。wp-content を上書きするとテーマやプラグイン、アップロードした画像が消えるので、ここだけは絶対に触らないでください。

ステップ5:デバッグモードで原因を特定する

ここまでやっても直らない場合は、wp-config.php に次の2行を追加して、エラーの内容をログに出します。

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );

wp-content/debug.log に、どのファイルの何行目でエラーが出たかが記録されます。ファイルのパスを見れば、原因のプラグインやテーマがわかります。確認が終わったら、2行は必ず削除してください。

更新前に、私が必ずやっていること

復旧できるとはいえ、起きないに越したことはありません。クライアントのサイトを更新するとき、私は次の順番で進めています。

1. バックアップを取る

当たり前ですが、これだけで「最悪の事態」がなくなります。レンタルサーバーの自動バックアップがあるか確認し、なければバックアッププラグインでファイルとデータベースの両方を取ります。更新前のバックアップが手元にあれば、復旧手順をすべて飛ばして戻すこともできます。

2. プラグインの対応状況を確認する

WordPress本体を更新する前に、プラグイン一覧で「最終更新日」と「検証済みバージョン」を見ます。2年以上更新されていないプラグインは、新しい本体で動かなくなる可能性が高いです。先にプラグインを更新するか、代替を探してから本体を更新します。

3. ステージング環境があれば、そこで先に試す

レンタルサーバーによっては、本番のコピー環境(ステージング)をワンクリックで作れます。そこで更新してエラーが出なければ、本番でも同じ手順で進めます。

4. サーバーの空き容量を確認する

意外と見落とされるのがこれです。更新時にはファイルを一時的に展開するので、サーバーの容量がぎりぎりだと途中で止まります。更新前に空き容量を確認する習慣をつけてから、この原因でのトラブルはなくなりました。

5. 更新は「人がいる時間」にやる

自動更新に任せている場合、深夜に更新されてエラーが出ると、朝まで誰も気づきません。セキュリティ更新は自動でよいですが、メジャーバージョンの更新は、何かあったときにすぐ対応できる時間帯に手動で行うようにしています。

セキュリティ更新を放置するリスクも知っておく

「更新するとエラーが出るかもしれないから、更新しない」という判断をするサイトを、実際に何度も見てきました。ただ、WordPressのセキュリティ更新は、公開された脆弱性を塞ぐためのものです。放置したサイトは、改ざんやスパムの踏み台にされるリスクを抱え続けます。

更新しないのではなく、安全に更新できる手順を用意しておくことが、結局いちばん手間が少ない方法だと思っています。

まとめ

  • 「重大なエラー」の原因は、ほとんどが非対応のプラグイン・テーマか、更新の中断
  • 復旧は、管理者宛のメール → プラグインのフォルダ名変更 → PHPを戻す → 本体を上書き、の順
  • 更新前のバックアップ・プラグインの対応確認・空き容量の確認で、ほとんどは防げる
  • 更新しない選択はリスクが大きい。安全に更新できる手順を持っておく

真っ白な画面を見た瞬間は焦りますが、データが消えているわけではありません。落ち着いて順番に進めれば、ほとんどのケースは1時間以内に戻せます。