WordPressのプラグインをアップデート等の際に表示される「現在メンテナンス中のため、しばらくの間ご利用いただけません」画面がそのまま永延と表示されて何も出来なくなってしまったときの修復方法です。
修復方法
FTPやファイルマネージャ、SSHなどでWordPressのインストールディレクトリにある「.maintenance」というファイルを削除すると正常に戻ります。
原因
WordPressがメンテナンス処理を行っている最中に「.maintenance」ファイルを一時的に作成して排他制御を行っているが、それが何かしらの原因により削除されなくなり、メンテナンス表示が出続けるということが原因です。
排他制御(排他処理)とは?
ファイルやデータベースなどの処理を行っている最中に、他の同じような処理が割り込んでデータの整合性が失われることを防止する制御の事です。
例えば、簡単な例だと以下の2つのルールを作るだけで排他制御が可能です。
- 書き込み等の処理開始直前に任意のファイル(ロックファイル)を作成して処理が終了したらロックファイルを削除する。
- もしロックファイルが存在する場合は他の処理が実行中と判断してロックファイルが無くなるまで新しい処理の開始をスリープする。
この2つのルールにより処理の重複を防ぐことができます。
今回は上記のロックファイルが「.maintenance」ファイルに該当し、何かしらのエラーやサーバの強制再起動などによってロックファイルが削除できずに残ってしまい、WordPressが永延とメンテナンス表示を出し続けたというオチです。
突然この現象に遭遇すると焦りますが、すぐに復旧できますので覚えておきましょう。
以上で解決です。