Webサイトのお助け隊

更新に失敗した際のWordPressの復旧方法とトラブルシューティング

0 views
約13分

導入部:その「更新」ボタン、本当に大丈夫?

WordPressの管理画面に表示される「更新」の通知。サイトを安全に保つために欠かせない作業だってことは、みんな分かってる。でも、あの「更新」ボタンを押す瞬間、ちょっとだけヒヤッとしない? 僕も若い頃、クライアントのサイトで軽い気持ちで更新ボタンを押したら、画面が真っ白になって血の気が引いた経験があるんだ。あの時の冷や汗は今でも忘れられないよ。

WordPressの更新は、車のエンジンオイル交換みたいなもの。定期的にやらないと、いつか大きなトラブルに見舞われる。でも、いざ更新してみたら「更新に失敗しました」「現在、メンテナンス中です」「画面が真っ白」…なんて事態になったら、パニックになるのも無理はない。特に、自分のサイトならまだしも、お客様から預かっているサイトだったら、もう気が気じゃないよね。

でも、大丈夫。そんな時でも、落ち着いて一つひとつ原因を探っていけば、大抵の場合は元通りに復旧できるんだ。それに、一度この手のトラブルを経験しておくと、次からはもっと慎重に、そして安全に更新作業を進められるようになる。いわば、エンジニアとしてのレベルが上がる良い機会でもあるわけだ。

この記事では、僕がこれまでの現場で経験してきたWordPressの更新失敗パターンと、その具体的な復旧手順を詳しく解説していく。この記事を読めば、いざという時に焦らず対処できるようになるし、そもそもトラブルを未然に防ぐための「転ばぬ先の杖」も手に入れられるはずだ。じゃあ、さっそく見ていこうか。

問題の説明:なぜWordPressの更新は失敗するのか?

そもそも、なぜWordPressの更新は失敗することがあるんだろう? ボタンを一つ押すだけの簡単な作業に見えるけど、その裏側では結構複雑なことが行われているんだ。

更新プロセスの裏側で起きていること

WordPressの更新が始まると、まずサイトは「メンテナンスモード」に入る。これは、更新作業中に訪問者がサイトにアクセスして、中途半端な状態のサイトを見たり、データベースの不整合が起きたりするのを防ぐための仕組みだ。具体的には、WordPressのルートディレクトリに.maintenanceという一時的なファイルが作成されて、このファイルがある間、サイトには「現在、メンテナンス中です」というメッセージが表示される。

そして、新しいバージョンのWordPressコアファイルがダウンロードされて、既存のファイルが上書きされていく。プラグインやテーマの更新も基本は同じだ。さらに、データベースの構造変更が必要な場合は、データベースの更新処理も走る。これらの処理がすべて無事に完了して、初めて.maintenanceファイルが自動的に削除され、サイトは通常の状態に戻るんだ。

よくある失敗の3大パターン

この一連の流れのどこかで処理が中断したり、予期せぬエラーが起きたりすると、更新失敗というトラブルにつながる。僕の経験上、更新失敗のパターンは大きく分けて3つある。

  1. 画面が真っ白になる(White Screen of Death / WSoD)
    これは一番焦るパターンだよね。管理画面もサイトのフロントも、文字通り真っ白になって何も表示されなくなる。主な原因は、更新後のプログラム(PHP)に文法ミスがあったり、プラグインやテーマの互換性がなくて致命的なエラーが起きたり、あるいはサーバーのメモリが足りなくなったりすることだ。
  2. 「現在、メンテナンス中です」から戻らない
    更新プロセスが途中で止まってしまった場合に起こる典型的な症状だ。例えば、ファイルのダウンロードに失敗したり、サーバーが応答しなくなったりして、.maintenanceファイルが削除されないまま残ってしまうのが原因だ。
  3. 「更新に失敗しました」「公開に失敗しました」と表示される
    最近のブロックエディタ(Gutenberg)でよく見られるエラーだね。これは、エディタとWordPress本体が裏側で通信するために使っている「REST API」という仕組みが、何らかの理由でうまく動いていない時に発生することが多い。

失敗の根本原因は「環境の不一致」

結局のところ、これらの失敗が起こる根本的な原因は、サイトを構成する要素同士の「環境の不一致」や「互換性の問題」がほとんどなんだ。WordPress本体、PHPのバージョン、使っているテーマ、そして無数のプラグイン。これらの歯車が一つでも噛み合わないと、更新という大きな変更のタイミングでガタがきてしまう。だからこそ、トラブルが起きた時に、どこに問題があるのかを冷静に切り分けていくスキルが重要になるんだ。

【状況別】WordPress更新失敗からの復旧マニュアル

さて、ここからは具体的な復旧手順を解説していく。パニックにならず、自分のサイトがどの状況に当てはまるかを確認して、一つずつ試してみてほしい。

Case 1: 「現在、メンテナンス中です」から進まない場合

これは最もシンプルで、解決しやすいケースだ。原因は、更新プロセスが中断して.maintenanceファイルが残ってしまっていること。だから、このファイルを削除すればいい。

解決策:.maintenanceファイルの削除

  1. FileZillaなどのFTPソフトを使って、サーバーに接続する。
  2. WordPressをインストールしているルートディレクトリ(wp-config.phpなどがある場所)に移動する。
  3. .maintenanceというファイルを探して削除する。

これだけ。たったこれだけで、サイトは元通り表示されるはずだ。もしファイルが見つからない場合は、FTPソフトの設定で「不可視ファイルを表示する」オプションを有効にしてみてほしい。それでも見つからない場合は、別の原因が考えられる。

ターミナル(SSH)で操作できるなら、以下のコマンドでも確認・削除できるよ。

# WordPressのルートディレクトリに移動してファイルを確認
ls -a

# .maintenance ファイルがあれば削除
rm .maintenance

Case 2: 画面が真っ白になった(WSoD)場合

一番絶望的に見えるけど、これも手順を踏めば原因を特定できることが多い。原因の多くはプラグインかテーマのどちらかだ。

手順1: 原因の切り分け(プラグインかテーマか)

まずは、プラグインが原因かどうかを調べる。FTPソフトでwp-contentディレクトリの中にあるpluginsフォルダの名前を、例えばplugins_oldのように変更してみよう。これでサイトが表示されたら、原因はプラグインのどれかだと確定だ。どのプラグインが原因か特定するには、フォルダ名をpluginsに戻してから、各プラグインのフォルダ名を一つずつ変更して無効化し、サイトが表示されるか確認していく地道な作業が必要になる。

プラグインが原因でなかった場合は、次にテーマを疑う。同じように、wp-content/themesの中にある、現在有効になっているテーマのフォルダ名を変更してみよう。これでWordPressは自動的にデフォルトのテーマを読み込もうとする。もしサイトが表示されたら、テーマが原因だ。

手順2: デバッグモードを有効にしてエラーを確認する

原因の切り分けでも復旧しない場合や、もっと具体的なエラー内容を知りたい場合は、WordPressの「デバッグモード」を有効にしよう。wp-config.phpファイルに以下の3行を書き加えるか、既存の記述を書き換える。

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

こうすると、画面にはエラーを表示せず、wp-contentディレクトリ内にdebug.logというログファイルが生成されるようになる。このファイルを開けば、どのファイルの何行目でエラーが起きているのか、具体的な手がかりを得られるんだ。エラーメッセージを読めば、原因となっているプラグインやテーマを特定できることが多い。

手順3: メモリ上限を増やす

ログに「memory size exhausted」といったエラーが出ている場合は、PHPが使えるメモリが足りていない。wp-config.phpに以下の行を追記して、メモリ上限を増やしてみよう。

define('WP_MEMORY_LIMIT', '256M');

Case 3: 「更新に失敗しました」と表示される場合

これは管理画面には入れるけど、投稿の保存や更新ができないパターン。原因はREST APIの不具合がほとんどだ。

解決策1: サイトヘルスで確認

まずは管理画面の「ツール」→「サイトヘルス」を開いてみよう。「REST APIで予期しない結果が発生しました」といったエラーが出ていれば、それが原因だ。エラーの詳細に、解決のヒントが書かれていることもある。

解決策2: プラグインの無効化

特にセキュリティ系のプラグインやキャッシュ系のプラグインが、REST APIの通信を邪魔していることがある。一度すべてのプラグインを無効化してみて、それで更新できるか確認しよう。もし更新できるなら、一つずつプラグインを有効化していき、原因のプラグインを特定する。

解決策3: Classic Editorプラグインを試す

どうしても解決しない場合の一時的な回避策として、「Classic Editor」プラグインをインストールして有効化する手もある。これは、エディタを旧式のものに戻すプラグインで、ブロックエディタとREST APIの問題を回避できる場合がある。

最終手段:バックアップからの復元

いろいろ試してもダメだった…。そんな時の最後の砦が、バックアップからの復元だ。というか、本当はトラブルが起きたら、下手にいじらずに、まずこれを検討するのが一番安全で確実な方法なんだ。

手順1: ファイルの復元

バックアップしておいたWordPressのファイル群を、FTPソフトでサーバーに上書きアップロードする。これでファイルは更新前の状態に戻る。

手順2: データベースの復元

次にデータベースを元に戻す。多くのレンタルサーバーでは、管理画面からphpMyAdminというツールにアクセスできる。phpMyAdminで、バックアップしておいたSQLファイルをインポートすれば、データベースも更新前の状態に復元される。

実践的なアドバイス:プロが教える転ばぬ先の杖

トラブルが起きてから対処するのも大事だけど、もっと大事なのは、そもそもトラブルを起こさないこと。ここでは、僕がいつも現場で実践している「失敗しないための更新術」を伝授しよう。

何よりもまず「バックアップ」

もう耳にタコができるくらい言われていることだけど、これに尽きる。更新作業の前には、必ず「ファイル」と「データベース」の両方のバックアップを取る。これを習慣にするだけで、精神的な安心感が全く違う。

最近のレンタルサーバーは、自動でバックアップを取ってくれる機能がついていることが多いから、まずはその設定を確認しよう。もしなければ、「UpdraftPlus」のようなバックアップ用プラグインを導入するのがおすすめだ。

本番環境でいきなり更新はNG!ステージング環境を使おう

特に大規模なサイトや、絶対に止められないECサイトなんかでいきなり本番環境の更新ボタンを押すのは、命綱なしで綱渡りをするようなもの。プロの現場では、本番とそっくりの「ステージング環境(テスト環境)」を用意して、まずそこで更新を試すのが常識だ。

これも最近のレンタルサーバーなら、ボタン一つでステージング環境を作成できる機能があったりする。そこで更新してみて、表示崩れやエラーが出ないことを確認してから、本番環境にその変更を反映させる。この一手間が、大きな事故を防ぐんだ。

更新は「こまめに」「一つずつ」が鉄則

更新通知が溜まっているからといって、一度に全部まとめて更新するのはやめた方がいい。もしトラブルが起きた時に、どれが原因か分からなくなってしまうからね。面倒でも、プラグインは一つ更新したら動作確認、また一つ更新したら動作確認、というように、こまめにやるのが結局は一番の近道だ。

更新情報のチェックを怠らない

プラグインやテーマの更新内容(Changelog)には、重要な情報が書かれていることがある。「他のプラグインとの互換性の問題を修正した」とか、「PHP8.xに対応した」とかね。特にメジャーアップデート(バージョン番号の最初の数字が変わるような更新)の場合は、自分の環境で問題が起きないか、事前にフォーラムなどで情報収集するくらいの慎重さが必要だ。

FAQ:よくある質問

Q1: FTPって何ですか?どうやって使えばいい?

A1: FTPは「File Transfer Protocol」の略で、簡単に言うと自分のPCとサーバーとの間でファイルをやり取りするための仕組みだよ。FileZilla(ファイルジラ)やCyberduck(サイバーダック)といった無料のFTPソフトを使えば、ドラッグ&ドロップで簡単にファイルを操作できる。接続に必要なホスト名やユーザー名、パスワードは、契約しているレンタルサーバーの管理画面で確認できるはずだ。

Q2: バックアップはどのくらいの頻度で取ればいいですか?

A2: これはサイトの更新頻度によるね。毎日記事を投稿しているようなサイトなら、理想は毎日。でも、最低でも週に1回は自動でバックアップが走るように設定しておきたいところだ。もちろん、手動で何か大きな変更(テーマの変更やプラグインの追加など)を加える前には、その都度バックアップを取るのが鉄則だよ。

Q3: エラーメッセージが英語で読めません…

A3: 気持ちはよく分かる。でも、エラーメッセージは問題解決のための最大のヒントなんだ。例えば「Error establishing a database connection」なら「データベース接続の確立エラー」だな、とか、「Fatal error: Allowed memory size of … exhausted」なら「メモリ不足か」といったように、よく出るキーワードだけでも覚えておくと便利だ。最近はブラウザの翻訳機能も優秀だから、諦めずに読んでみるのが大事だよ。

Q4: どのプラグインが原因か分かりません。全部消してもいい?

A4: いや、それは一番やっちゃダメなやつだ。プラグインをいきなり削除すると、そのプラグインが作っていたデータベースのテーブルや設定が消えて、余計に事態が悪化することがある。まずは「無効化」して様子を見ること。フォルダ名を変更する方法なら、安全に無効化できるからおすすめだ。どうしても原因が分からない場合は、下手にいじらずに、詳しい人や制作会社に相談するのが賢明だよ。

まとめ:トラブルを乗り越えて、WordPressと上手く付き合おう

どうだったかな? WordPressの更新失敗は、確かに焦るトラブルだけど、原因と対処法を知っていれば、決して怖いものじゃないってことが分かってもらえたかと思う。

大事なのは、パニックにならずに、この記事で紹介したような手順で冷静に原因を切り分けていくこと。そして、そのためにも、日頃からのバックアップという「保険」が何よりも重要なんだ。

  • まずはメンテナンスモードの解除を試す。
  • 次にプラグインやテーマの互換性を疑う。
  • デバッグモードを有効にして、エラーの正体を探る。
  • そして、いつでも戻れるように、バックアップからの復元手順を頭に入れておく。

更新トラブルを一度自力で乗り越えれば、WordPressの仕組みへの理解がぐっと深まるし、エンジニアとしての自信にも繋がる。トラブルは避けるに越したことはないけど、もし起きてしまったら、それは成長のチャンスだと思って、前向きに取り組んでみてほしい。

さあ、まずは自分のサイトのバックアップ設定がどうなっているか、今すぐ確認してみようか。


「うちのサイト、今どのくらい安全なんだろう?」

そんな疑問を持った方は、まずセキュリティ診断を受けてみるのもいいかもしれない。最近では、30秒ほどでサイトの安全性をチェックできる無料診断サービスもある。暗号化の設定やプラグインの脆弱性、情報漏れのリスクなど、気になるポイントを一通り確認できる。

実は、毎日100サイト以上がハッキングの被害に遭っているという現実がある。「まさか自分のサイトが狙われるなんて」と思っていても、被害は突然やってくる。

WordPressセキュリティ無料診断はこちら

早めに問題を見つけて対処しておけば、大きなトラブルを未然に防げる。まずは自分のサイトの「健康診断」から始めてみませんか?

FacebookでシェアTwitterでシェアPinterestでシェア