もうこれで悩まない?WordPressの更新で
「別の更新が現在進行中です」が出た時の解決法

  • 2024.02.19

PHP・WordPress

もうこれで悩まない?WordPressの更新で「別の更新が現在進行中です」が出た時の解決法

WordPressは頻繁に更新・アップデートが行われます。
本体はもちろん、使っているプラグインなどによってはそれこそ毎週などのように何かしらのアップデートをしなければいけない…なんて事もあるかもしれません。

そんなアップデートですが、WordPressの本体を更新しようとした際に、タイトルの「別の更新が現在進行中です。」という表示が出てしまい、そこから進まなくなってしまって困るという事があります。

クライアントに納品した後にちょくちょくこの手の問い合わせをいただくこともあり、まさに今回もそのお問い合わせをいただいた事もあって今回これについてまとめておきたいと思います。

一番簡単なのは15分待てば良いだけ

もう簡単に結論から書いてしまうと、これ待てば良いだけです。
WordPressは更新時にミスをした場合、運が悪いと画面真っ白になったりいきなりログインできなくなったりという事象があるためか、焦ってしまう人も多いですが待てば問題ありません。

待っている間にWordPressのサイトに何か影響があることもありません。
普通にサイトの閲覧もできますし、管理画面上で操作することも通常通り行えます。

15分待った後に管理画面にアクセスすれば、更新をする前と同じ状況に戻っていますので、今までと同じように更新を行えば、そのままアップデート完了まで行けるようになります。

データベースのレコード「core_updater.lock」の削除

15分待つだけで解決できるので、多くの場合はこれで終わります。
とはいえ、せっかくなので別のやり方も解説しておきたいと思います。まず無いと思いますが、今すぐ対応しなければならないといったシーンなどがあればこれをやりましょう。

WordPressを使っているのであれば、データベースの管理ツールとしてphpMyAdminを使いデータベース内のレコードcore_update.lockを削除することでロックが解除されます。

また、名前からも推測できるようにアップデートをロックするというファイルになるため、この別の更新が進行中です。の時のみに生まれるファイルになり、15分経ったりしてロックが終わればファイルは消えてしまっています。

core_update.lockにアクセスするための手順としては下記の通りです。
使っているサーバーによって、phpMyAdminなどのバージョンが異なると多少違う事もあるかもしれません。最新のエックスサーバー上では下記の通りでした。

該当のデータベース内のwp_optionsをクリックし、出てきたデータベースの中身からoption_nameの列のところにcore_updater.lockとなっているレコードを探しましょう。

見付ける事ができれば、それを削除とすれば完了です。
もしコマンドで行う場合は、下記のコマンドで削除できます。

delete from wp_options where option_name = 'core_updater.lock';

削除が完了したら、15分待った後と同じ状況になりますので、WordPressの管理画面にログインをしてそのまま更新へ進めていきましょう。

データベースを直接いじるので要注意

ただ当然データベース内を直接いじくることになるので、よほどの事が無い限りする必要性すらないので、方法として知っておくくらいに留めておくことが良いのではないかなと思います。

事実、自分も方法として知っているしテスト環境などで試しにやってみたことはありますが、クライアントサイトの管理や実務などで、15分待たずにわざわざこれをしたという事は今までに1度もありません。

functions.phpに1行追加でも同じことが可能

使っているサーバーによってはデータベースの操作ができないという場合は、functions.phpの修正でも同じようにロックを解除する事ができます。

まずありえないですが、15分待つことができず今すぐ対応しなければならないけれどデータベースやphpMyAdminにログインして修正などできないという場合は、この方法で対応しましょう。

delete_option( 'core_updater.lock' );

functions.phpにこの1行を追記すると更新を進めることができます。
データベースをいじるよりかは、こちらの方が慣れているという方も多いはずなので、どちらかというとこちらの方がまだ安全かもしれません。

functions.phpであれば、記述して更新を終えた後は削除しておけば良いのですが、コメントアウトなどしておけば、同じような状況になった際には再度活用といった事もできます。(実際に使う機会はないとは思いますが…)

ファイルをいじるくらいなら待つ方が良い

上記3つの方法を解説してきましたが、当然ながらおすすめは1つめです。

誰が何と言おうとも、これは待てば解決します。
他の方法は慣れた人が行うならさほど問題ないかもしれませんが、例えばクライアント先のそこまで制作やWordPressの事を知らない人が見よう見まねでやると失敗してしまうリスクもあるわけです。

3つの方法のどれかを使えば、WordPressの更新も問題なく行えるようになりますが、結局は最初に書いた通り、15分待てば元通りになるので安全を考えればそれで行くのが一番ですし、それ以外のリスクが高すぎるので、よほどそれをしなければいけないという状況下でない限りやる必要はありません。

そもそも起こる原因

これが起こる原因は、WordPress側の保護機能によるものです。
WordPressの本体のバージョンアップなど重要な更新においては、更新中に他の更新が動作しないようにするためのロック機能が働くといった形になっています。

WordPressの心臓とも言える本体をアップデート中に他の何かのアップデートを複数して壊れたりしないようにするための機能といったイメージです。WordPressの仕様的に言えば正常に動作していると言えますね。

そのため本体のバージョンアップを行っている際に、なにかしらの影響でアップデートができなかったり、エラーが出たりした際、改めて更新画面に行くとロックがかかって更新ができないという状況になります。

そのロックが解除されるのが15分ということで、上記の説明に繋がっています。

まとめ

ちょうどクライアントから更新したらこんなことになった!というお問い合わせをいただいたので、簡単にまとめてみました。

色々なやり方、方法がありますが、結論はただ1つで15分待つのみです。
15分待てば解決するものを、あえてfunctions.phpをいじったり、データベースの中に入って操作したりなんてするのはリスクが高すぎます。

15分待つことができず今すぐやらないといけない!!!といったような緊急時(そんなケース経験したことないですが)でない限りは15分待つようにしましょう。

色々と解説はしてはいますが、上記の通り自分自身が実際に15分待つ以外の手段を取った事は皆無で、検証とテストのために1度やっただけでそれ以外は全て15分待つということにしています。

記事のシェアにご協力お願いします

  • 2024.02.19

PHP・WordPress

この記事と類似テーマの記事