突然のネットワーク障害
WordPressの管理画面でプラグインのアップデートをしていた所、アップデート中に突然のネットワーク障害でサーバーから切断。ネットワークが回復して再度Webサイトにアクセスすると「現在メンテナンス中のため、しばらくの間ご利用いただけません」の文字が!うおおおお、管理画面どころかサイト自体も見えなくなってしまった!そこで、このメッセージが出てからの対処法をまとめました。
メッセージの発生箇所の特定
とりあえずこのメッセージを出力している所を見ようと思って、WordPressのディレクトリを検索。日本語翻訳ファイルに以下の記述を発見。
#: wp-includes/load.php:223 msgid "Briefly unavailable for scheduled maintenance. Check back in a minute." msgstr "現在メンテナンス中のため、しばらくの間ご利用いただけません。
そしてさらに検索するとコアファイルの中の wp-includes/load.php ファイル中に定義されているwp_maintenance()
関数にたどり着きました。
function wp_maintenance() { if ( ! file_exists( ABSPATH . '.maintenance' ) || wp_installing() ) return; global $upgrading; include( ABSPATH . '.maintenance' ); // If the $upgrading timestamp is older than 10 minutes, don't die. if ( ( time() - $upgrading ) >= 600 ) return; /** * Filters whether to enable maintenance mode. * * This filter runs before it can be used by plugins. It is designed for * non-web runtimes. If this filter returns true, maintenance mode will be * active and the request will end. If false, the request will be allowed to * continue processing even if maintenance mode should be active. * * @since 4.6.0 * * @param bool $enable_checks Whether to enable maintenance mode. Default true. * @param int $upgrading The timestamp set in the .maintenance file. */ if ( ! apply_filters( 'enable_maintenance_mode', true, $upgrading ) ) { return; } if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) { require_once( WP_CONTENT_DIR . '/maintenance.php' ); die(); } wp_load_translations_early(); $protocol = wp_get_server_protocol(); header( "$protocol 503 Service Unavailable", true, 503 ); header( 'Content-Type: text/html; charset=utf-8' ); header( 'Retry-After: 600' ); ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"<?php if ( is_rtl() ) echo ' dir="rtl"'; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php _e( 'Maintenance' ); ?></title> </head> <body> <h1><?php _e( 'Briefly unavailable for scheduled maintenance. Check back in a minute.' ); ?></h1> </body> </html> <?php die(); }
どうやらメンテナンス中は .maintenance というファイルが出来上がり、更新処理などが終わればいなくなるようです。ということは、更新処理を中断すると .maintenance ファイルが残ったままになり永遠にメンテナンスになる罠に陥るという現象になるようです。このファイルを削除することで解決しそうです。
.maintenance ファイルの削除
WordPressのインストールディレクトリをFTPやSSHで接続して削除しましょう。
削除してWebサイトを確認すると……戻った!\(^o^)/
うおおおおお!戻った!これ知らない人はパニックになるだろうな……FTPやSSHで接続できない状況だった場合、ゾッとする。更新する時はそういったリスクがあることを踏まえてやるように心がけようと思った。
(中断時のロールバック処理などはどうやっているんだろうか?プラグインなら上書きで良い気がするけど、本体は?今度調べてみよう。)
6 thoughts on “「現在メンテナンス中のため、しばらくの間ご利用いただけません」が表示された時の対処法”
同じような症状でこちらにたどり着き、こちらの記事で解決できました!
ありがとうございます!!
助かりました!
こちらの方法を実施してみたら、すぐに解消できました。
ありがとうございます!
まったく同様の状況に陥り目が点になりました・・
こちらの記事にたどり着いてスムーズに解決できました。
有益な情報ありがとうございます。
ありがとう。助かったよ。
元に戻らなくてかなり焦った・・・
おかげさまですっきりしました!
ありがとうございます^^