WordPressが壊れたとき、その原因を突き止めるのはとても面倒な作業です。問題が何時間も解決されず、サイトの主要部分が使えなくなってしまうのは特に厄介です。

WordPressコア、テーマ、プラグインの更新を妨げる、奇妙なエラーが更新ページに表示されることがあります。このエラーは、自然に解決することもありますが、長時間表示されている場合には、おそらく自分で対処しなければいけません。

この記事では、このエラーの原因とサイトを再び動作させる解決策をいくつかご紹介します。

「別の更新が現在進行中です」エラーの解決方法について、動画での解説もご用意しています。

更新進行中のエラーの原因

サイトが正常に作動している場合は、「ダッシュボード」>「更新」に進むと、現在のWordPressのバージョンが表示されます。また、WordPressコア、テーマ、プラグインの更新も行うことができます。

WordPressの「更新」画面
WordPressの「更新」画面

最近サイトが更新された場合は、何かを更新したり再インストールする際に、「別の更新が現在進行中です(Another Update is Currently in Progress)」という短いメッセージが表示されることがあります。

この画面では、すべての更新ボタンがなくなり、このページ上で他の操作を行うことができなくなります。WordPressの更新進行中の画面

WordPressの更新進行中の画面
WordPressの更新進行中の画面

これは、アップデートのダウンロード中に、誤ってサイトを壊してしまわないための機能であり、更新を実行した際に表示されます。

更新を実行していないのに表示される場合は、自動更新機能が動作しているか、サイトで上位の権限を持つ他のユーザーが更新作業を行っている可能性があります。

つまり、更新中にこの画面が表示されるのは正常です。ただし、何時間も表示が消えない場合には問題があります。

WordPressでは必要に応じてデータベースがロックされることがありますが、時にそのロックが正しく解除されないことがあります。サーバーの接続不良などが原因で更新ができなかったのに、「更新中」画面の状態で固まってしまう、というような状況が考えられます。

WordPressコアの更新でデータベースがロックされる原因

では、なぜこのようなおかしなエラーメッセージが表示されてしまうのでしょうか。このように「更新」ページで操作ができなくなってしまうのは、なぜでしょうか。

WordPressがコアの更新を実行するたびに、データベースに行が追加され、更新中、時には完了後15分まで、他の更新(プラグインテーマの更新を含む)は実行できなくなります。たとえインストールに5秒しかかからないアップデートでも、15分間ブロックされてしまいます。

これにはちゃんとした理由があり、データベースのテーブルが2つの異なるソースから同時に更新されると、データベースが破損し、サイト上のデータが著しく失われる恐れがあるからです。

例えば、テーマとコアの更新を同時に実行した場合、どちらの操作も同じデータベースのテーブルを変更することになり、サイト全体がダウンしてしまう可能性がゼロではありません。

このロックは、ユーザーや自動更新機能がサイトや重要なデータを破壊するのを防止してくれます。

深刻な問題につながる恐れがあるため、ロックは手動で解除せず、15分間待ってから次の更新を実行してください。

しかし、どれだけ待ってもメッセージの表示が消えない場合は、手作業で対処しなくてはいけません。(作業完了後は、更新の失敗がサイトを壊してしまった場合に備えて、データベーステーブルの修復の解説記事をご覧ください)

更新進行中のエラーを解決する3つの方法

更新が開始されてからの約15分間は「更新進行中」のメッセージが表示されるのは正常ですので、急いでデータベースを触ることのないようにしてください。しばらく待っても表示され続けるようであれば、手作業で解決していきましょう。

メッセージの表示に気がついてから少なくとも1時間待った上で、これからご紹介する方法のいずれかを試してみてください。また、慣れないうちは特に、バックエンドのファイルを編集する前に、必ずデータベースとサイト全体のバックアップを取ることを忘れずに。

どの方法を取っても解決しない場合、もしくは自分で作業するのが不安な場合は、いつでもサーバーに連絡してサポートを受けることができます。

プラグインを使用する

通常、この問題を解決するには、データベースを調べたり、WP-CLIなどの高度な開発ツールを使いこなす必要がありますが、データを破損するリスクを避けたい場合には、より簡単な方法があります。

Fix Another Update in Progress plugin
Fix Another Update In Progress

Fix Another Update In Progressは、まさにその名の通り、現在進行中の別の更新を解決するプラグインです。長い間更新されていない古いプラグインですが、最近のレビューで現在も問題なく動作することが報告されており、今でも1万件以上インストールが行われていることがそれを裏付けています。

また、このプラグインに代わるものも特にないため、WordPressのリポジトリの中ではこれが最適なプラグインと言えるでしょう。注意点として、現在は開発者のサポートがなく、自己責任で使用することになります。

インストールするには、WordPressにログインしてから「プラグイン」>「新規追加」と進みます。「fix another update in progress」と検索して、このプラグインを見つけてください。クリックするとインストールが開始されます。

また、プラグインをパソコンにダウンロードした後、同じページの上部にある「プラグインのアップロード」をクリックしてアップロードすることも可能です。

プラグインの有効化後、「設定」をクリックすると「Fix Another Update In Progress」が表示されます。

Fix Another Update in Progressの設定に進む
Fix Another Update in Progressの設定に進む

データベースのロックを検出した場合、以下の画面が表示されます。Fix WordPress Update Lockボタンをクリックすると、データベースのロックが即座に解除されます。

「Fix WordPress Update Lock」のボタン
「Fix WordPress Update Lock」のボタン

その後、「更新」ページが再び操作できるようになっていればOKです。使わないプラグインを残しておくのは良くないため、このエラーが再度発生することがなければ、使用後はアンインストールをおすすめします。

PhpMyAdminを使用する

データベースを詳しく調べたことがなくても、これは非常に簡単な方法で、機密設定に触れない限りは安全です。データベースに手を加える前に必ずバックアップを取り、壊れた行を1つだけ削除しましょう。

まず、PhpMyAdminにログインします。Kinstaユーザーの場合は、MyKinstaからPhpMyAdminにアクセスすることが可能です。別のサーバーを使用している場合は、通常cPanelからアクセスできます。

cPanelからデータベースにアクセス
cPanelからデータベースにアクセス

複数のドロップダウンがある左側のメニューで、サイトのデータベースを開き、「wp_options」を選択します。

cPanelで「wp_options」を選択
cPanelで「wp_options」を選択

「wp_options」をクリックすると、様々なデータベースエントリーのテーブルが表示されるはずです。その一覧の中にある場合もありますが、テーブルが大きすぎて見つからない場合は、テーブルの上にある「Filter rows」のバーに「core_updater.lock」を入力して検索すると、すぐに見つけることができます。

「core_updater.lock」の行の「Delete」をクリックするだけで作業完了です。

「core_updater.lock」行を削除
「core_updater.lock」行を削除

これで、WordPressに戻ると自由にサイトを更新できるようになっています。

WP-CLIを使用する

重要なデータベースを触るのに抵抗があったり、テーブルの数が多すぎてよく分からない場合には、WP-CLIを使えば素早く簡単に解決することができます。

WP-CLIとは、WordPressのコマンドラインインターフェースで、これを使用すると、cPanelやPhpMyAdminを手動で操作することなく、データベースやサイトの他の機能の編集が行えます。1行のコードを入力すれば、即座に問題解決です。

最近では、Kinstaを含め、WordPressに特化したほとんどのサーバーには、WP-CLIが予めインストールされているため、複雑な設定はいりません。

コマンドラインを実行する前に、先ほどと同様、必ずサイトはバックアップしておきましょう。

SSHへの接続方法で、より詳しい解説をご覧いただけますが、簡単にご説明すると、MacとLinuxには、すでにターミナルが組み込まれており、Windowsユーザーは、PuTTYのようなプログラムをインストールする必要があります。

PuTTYのダウンロード
PuTTYのダウンロード

加えて、サーバーからSSH接続情報を取得する必要があります。cPanelの「SSHアクセス」、Kinstaユーザーの場合は、MyKinstaの「情報」タブで見つかります。

Windowsユーザーは、PuTTYをインストールして、サーバーから取得したホスト名/IP、ポート、ユーザー名、パスワードを入力してください。

MacとLinuxのユーザーは、ターミナルを開いて以下のコマンドを入力してください。

ssh username@hostip -p portnumber

プロンプトが表示されたら、パスワードを入力します。

これで、WindowsのPuTTYでも、MacやLinuxのターミナルでも、サーバーにコマンドを入力できるようになったはずなので、以下のコマンドを入力してください。

wp option delete core_updater.lock

コマンドラインで変更を加える
コマンドラインで変更を加える

最後のコマンド入力までの作業はやや複雑ですが、これさえ入力できれば、問題解決です。

まとめ

「別の更新が現在進行中です」のエラーは、発生すると非常に厄介です。小さなデータベースエラーのせいで、何日もサイトの更新ができなくなると、大変なことになります。

幸い、その解決方法は非常にシンプルです。WP-CLIやPhpMyAdminにアクセスできる場合は、ロックを解除するだけでサイトは元通りになります。この作業が面倒であれば、代わりに処理してくれるプラグインをインストールすればOKです。

うまくいかない場合には、いつでもサーバーに問い合わせて、壊れたデータベースエントリの削除を依頼することもできます。

ただし、自然に解決することもあるため、この作業を始める前に、メッセージが表示されてから15分から1時間は待ちましょう。データベースのロックは、理由があってかけられているのであって、誤って解除するとデータベースが壊れる恐れがあります。

WordPressのエラーはよくあることで、事前に対処法を知っておくと便利です。