WordPressの更新でメンテナンスモードが解除されず「.maintenance」を削除しても解決しなかったパターン

シェアする:

この記事をおすすめしたい人

  • WordPress更新中にページを離脱してメンテナンスモードが解除されない人
  • 「.maintenance」を削除したのにまだエラーが出る人
  • 再アップデートをかけたら「別の更新が現在進行中」と出てアップデートできない人
  • つまりオレ

自分で困ったのでメモ書き。

WordPress更新中にうっかりF5を押してしまい(別タブで押したつもりだった)、更新が終了しなくなりました。

サイトの方を見てもメインテナンスモードで、管理画面もメインテナンスモード。

お手上げと思いきや、調べると答えがあったものの、ちょこちょこトラブったので、僕と同じケースの人は参考にしてみてください。

WordPressの上でな!

あ、WordPressの上でいいんだった。

「.maintenance」の削除

ネットで調べるとすぐに解決法が出てきました。

WordPressをインストールしたフォルダに「.maintenance」というファイル(ファイル名なしの拡張子maintenance)が出来ているはずなのでこれを削除しなさいよ、と。

僕はローカルの開発環境でやってしまったので、普通にファイラから削除しました。

サーバサイドでやってしまった場合はFTPソフトで削除する必要があります。 FFFTPとか、フリーソフトでできます。

さて、削除後の続きは書いていなかったのでおそらくほとんどのケースはこれで解決するんでしょう。

今回はこれで解決しなかったので続きへ。

「.maintenance」の中身

中身を見るためにもう1回同じことをしました。
(↑実験大好き)

中身は1行だけ。


<?php $upgrading = 1598074382; ?>

いかにもUNIX時間っぽいので変換してみると「2020-08-22 14:33:02」。

更新を開始した時間っぽいですね。

「.maintenance」の中身をfunctions.phpに書くとどうなるか

中身はただのPHPのコードだったのでfunctions.phpに「.maintenance」の中身を追加してみます。


$upgrading = 1598074382;

メンテナンスモードにはなりませんでした。 single.phpやindex.phpでも同様。

中身を見てるのかどうかは知りませんが、「.maintenance」が存在することでメンテナンスモードの判定をしているようです。

「.maintenance」削除で復帰するかどうかは時間次第

おそらくですが、「.maintenance」削除でWordPressが元に戻るかは、更新中ページから移動(や更新)をしたタイミングによるのではないかと思います。

上の追試ではすぐにリロードかけたため、「.maintenance」削除で無事に復帰できました。 これは更新ファイルをダウンロード中に離脱したせいではないかと考えています。

これに対して、更新ファイルを既存のファイルに上書きしている最中に離脱してしまった場合。

これってたぶん前のバージョンのファイルと最新版のファイルが混在することになると思うんですよね。

さすがにこれだとシステムがほぼ確実に破壊されてしまうので、もしかすると離脱しても1タスクはやりきるようになっているかもしれませんが。

今回はここまでのことにはなっていなかったようですが、何かしらの不整合が起きてエラーが出ていたようです。

「.maintenance」削除後もエラーが出て起動できない

「.maintenance」削除後、管理画面・サイト画面ともにエラーが出て閲覧できませんでした。

エラー内容をメモり忘れましたが、プラグインの「classic-editor」からエラーが出てますよと。

この時は実験中でclassic-editor以外のプラグインを全部オフにしていたため、他のプラグインでもエラーが出たのかは分かりません。

エラーが出ているなら削除してやれと「wp-content」「plugins」とフォルダを潜り、「classic-editor」フォルダを全削除で解決しました。

他のプラグインからエラーが出ていた場合にも同様に対応すれば解決するかもしれません。
(自己責任で)

再アップデートで「別の更新が現在進行中」

WordPressのシステムファイルが変な状態になっていたら大変なので、とりあえずもう1回アップデートして綺麗にします。

ところがこの↓ように表示されて更新できません。


別の更新が現在進行中です。

これにも解決法はあったようで、15分まつか、データベースから更新中ロックのレコードを削除するか、だそうです。

めんどくさいので今回は待ちました。

15分経って無事に更新完了。

更新後のプラグイン状態の確認

無理矢理エラーを抜けるためにプラグインを削除したので、プラグインの状態を確認します。


プラグイン classic-editor/classic-editor.php はエラーにより停止しました: 
プラグインファイルが存在しません。

classic-editorを使う設定になってるのにファイルが存在しませんよと。

というわけで、classic-editorを再インストールします。

WordPressを通して新規にインストールしてもよかったんですが、そうするとデータベースにも手が入る可能性があったので、手動でバックアップからフォルダだけを復元します。

結果、フォルダの再配置だけでプラグインが有効になりました。

がっ!!

WordPress自体は動いていますが、以下のような警告が表示されています。


Deprecated: 
add_option_whitelist の使用はバージョン 5.5.0 から非推奨になっています ! 
代わりに add_allowed_options() を使ってください。 
in /wp-includes/functions.php on line 4773

「wp-includes」内のファイルに警告が出ていますが、そんなとこ書き直したくありません。

プラグインを有効にした途端に出た表示だったので、試しにプラグインを更新してみます。

classic-editorをVer.1.5から1.6に更新することで上記警告も出なくなりました。

classic-editorが原因だったなら、「.maintenance」削除後のエラーも同じような内容だったのかもしれません。

とにかくこれで問題は解決しました。

それでも解決しなかった場合

僕が最終手段にと考えていた方法です。

WordPress公式から最新版のzipファイルをダウンロードしてきて、インストールフォルダに全ファイル上書きしてやろうと考えていました。

WordPress側からの更新も似たような作業のはずなので、おそらくこれで解決するはず…。

これで治らなければ、インストールフォルダ直下のファイル(wp-activate.phpとか)と、「wp-admin」フォルダ、「wp-includes」フォルダを削除後に上書きインストール。
(「.maintenance」のような一時ファイル生成の可能性)

起動しない原因がWordPressのシステムファイルの不整合だった場合、おそらくこれで解決すると踏んでいますが、試していないので自己責任でお願いします。

以下、この手段に出る場合に僕が考えていた注意点を残しておきます。

「wp-config.php」は残しておいた方がいいかもしれない

まず第一に、「wp-config.php」はWordPressのインストールファイルに入っていないので、どっちみち上書きされません。

第二に、「wp-config.php」はWordPressの初回セットアップ時に作られるファイルで、データベースへの接続情報などが入っています。

レンタルサーバの自動インストールに頼っていた場合などは未経験の部分になると思うので無駄に学習コストが増えます。

デフォルトテーマを改造している場合

WordPressにデフォルトで入っている「twentynineteen」などのテーマを改造して使っていた場合。

zipファイルから上書きすると中身も上書きされてしまいます。

バックアップを取っておくか、「themes」フォルダを上書きしない、「wp-content」フォルダを上書きしない、などの配慮が必要だと思います。

まとめ

以上、WordPressの更新中にページ離脱してしまって困った話をしました。

解決法を知っておいて損はないと思いますが、一番大事なのは「更新中はお手々は膝の上!」を徹底することだと思います。

以上、WordPressからお届けしました!

シェアする: