• WordPressのメンテナンスモードが解除されないときは「.maintenance」を確認する

WordPressのメンテナンスモードが解除されないときは「.maintenance」を確認する

公開日: 執筆:佐藤

WordPressの更新後に「Briefly unavailable for scheduled maintenance. Check back in a minute.」という表示が消えないときは、同じ更新を繰り返さず、.maintenanceに記録された時刻と処理の状態を確認します。処理が終わっていることを確かめてから、WordPressの設置先にある.maintenanceを退避します。

.maintenanceを外して公開画面が戻っても、更新が成功したとは限りません。表示が戻ったあとに、管理画面、更新したWordPress本体、プラグインまたはテーマ、公開画面を分けて確認します。

表示文からWordPressのメンテナンスモードかを見分ける

WordPress 3.4.2では、wp-content/maintenance.phpがない標準処理で、HTTPステータス503 Service UnavailableとRetry-After: 600を返します。英語版ソースの表示文の原文は次のとおりです。

Briefly unavailable for scheduled maintenance. Check back in a minute.

言語ファイルがある環境では、この文が翻訳されます。wp-content/maintenance.phpがある場合は、表示とHTTP応答をそのファイルが決めます。表示文だけで断定せず、HTTP応答とファイルの有無を一緒に確認します。表示が異なる場合は、レンタルサーバー、プラグイン、独自のメンテナンスページ、PHPエラーなど、別の仕組みも候補です。

更新中は設置先に.maintenanceが作られる

WordPress本体の更新処理と、メンテナンスモードを使うプラグイン・テーマの更新処理は、WordPressの設置先へ.maintenanceを作り、終了時に削除します。

設置先とは、通常、wp-admin、wp-content、wp-includesが並ぶディレクトリです。.maintenanceは先頭が点で始まるため、FTPソフトやサーバーのファイル管理画面で隠しファイルを表示しない設定になっていると、一覧に見えないことがあります。

更新処理が中断すると、終了時の削除まで進まない場合があります。だからといって、更新直後に.maintenanceを外してはいけません。ファイルのコピーや置換が続いている途中で公開画面だけを戻すと、更新前後のファイルが混ざった状態を利用者へ見せる可能性があります。

.maintenanceの記録時刻と更新処理を分けて確認する

WordPress 3.4.2のメンテナンス判定は、.maintenanceに記録された時刻を読みます。その時刻から600秒以上経過していれば、ファイルが残っていても標準のメンテナンス表示を出しません。

記録時刻から600秒に満たず、更新処理が動いているなら、別の更新を始めずに待ちます。処理が中断しているなら、経過時間だけで判断せず、更新対象とバックアップを確認して復旧方法を決めます。

600秒は、更新完了を保証する時間ではありません。WordPressが標準のメンテナンス表示を続けるかどうかを分ける条件です。記録時刻から600秒以上たっても、新しく取得した画面で表示が続くなら、通常の.maintenance判定だけでは説明できません。wp-content/maintenance.php、キャッシュ、HTTP応答を確認します。

.maintenanceは削除する前に退避する

FTPソフトまたはサーバーのファイル管理画面で、WordPressの設置先を開きます。wp-admin、wp-content、wp-includesが同じ階層にあることを確かめ、隠しファイルを表示して.maintenanceを探します。

更新処理が動いていないことを確認できたら、.maintenanceを手元へ保存します。保存できたことを確認してから、サーバー上の.maintenanceを削除します。元の内容と作業時刻を残してから、WordPressの判定対象から外します。

サーバーから外したら、別のブラウザーからトップページと管理画面を開き直します。標準のメンテナンス表示が消えれば、.maintenanceによる判定は外れています。表示が変わらない場合は、同じ操作を繰り返さず、別の原因へ切り替えます。

表示の復旧と更新の成功を分けて確認する

公開画面が戻ったことは、メンテナンス表示が解除されたという結果です。更新したWordPress本体、プラグイン、テーマが正常に動くことまでは証明しません。

復旧後は、次の順で確認します。

  1. 管理画面へログインできるか確認する。
  2. 更新画面で、対象の本体、プラグインまたはテーマの状態を確認する。
  3. 更新したプラグインが有効か、使用中のテーマが変わっていないか確認する。
  4. トップページだけでなく、投稿、固定ページ、フォームなど、更新対象に関係する画面を開く。
  5. エラーがある場合は、表示文、発生時刻、更新対象、退避した.maintenanceの内容を記録し、更新前のバックアップへ戻すかを判断する。

確認中にエラーが出ても、同じ更新ボタンを続けて押しません。表示を戻す作業、更新を完了させる作業、更新前へ戻す作業は別々に判断します。

.maintenanceがない場合は別の原因を調べる

WordPressは起動の早い段階で.maintenanceを確認します。WordPress 3.4.2の起動処理にも、通常のページ処理へ進む前にメンテナンス状態を調べる呼び出しがあります。

設置先に.maintenanceがなく、標準文も表示されていないなら、WordPress本体の標準メンテナンスモードとは別の原因を調べます。HTTPステータス、画面の文言、サーバーのエラーログ、更新した対象を確認し、サーバー側の停止、プラグインやテーマのエラー、独自のメンテナンス表示を分けます。

まず、.maintenanceに記録された時刻と、更新処理が動いているかを分けて確認してください。次に、WordPressの設置先で隠しファイルを表示し、.maintenanceの有無を見ます。退避して標準表示が消えたら、そこで終わりにせず、管理画面と更新対象を一つずつ確認します。

戻る