WordPressが壊れたとき、その原因を突き止めるのはとても面倒な作業です。問題が何時間も解決されず、サイトの主要部分が使えなくなってしまうのは特に厄介です。
WordPressコア、テーマ、プラグインの更新を妨げる、奇妙なエラーが更新ページに表示されることがあります。このエラーは、自然に解決することもありますが、長時間表示されている場合には、おそらく自分で対処しなければいけません。
この記事では、このエラーの原因とサイトを再び動作させる解決策をいくつかご紹介します。
「別の更新が現在進行中です」エラーの解決方法について、動画での解説もご用意しています。
更新進行中のエラーの原因
サイトが正常に作動している場合は、「ダッシュボード」>「更新」に進むと、現在のWordPressのバージョンが表示されます。また、WordPressコア、テーマ、プラグインの更新も行うことができます。
最近サイトが更新された場合は、何かを更新したり再インストールする際に、「別の更新が現在進行中です(Another Update is Currently in Progress)」という短いメッセージが表示されることがあります。
この画面では、すべての更新ボタンがなくなり、このページ上で他の操作を行うことができなくなります。WordPressの更新進行中の画面
これは、アップデートのダウンロード中に、誤ってサイトを壊してしまわないための機能であり、更新を実行した際に表示されます。
更新を実行していないのに表示される場合は、自動更新機能が動作しているか、サイトで上位の権限を持つ他のユーザーが更新作業を行っている可能性があります。
つまり、更新中にこの画面が表示されるのは正常です。ただし、何時間も表示が消えない場合には問題があります。
WordPressでは必要に応じてデータベースがロックされることがありますが、時にそのロックが正しく解除されないことがあります。サーバーの接続不良などが原因で更新ができなかったのに、「更新中」画面の状態で固まってしまう、というような状況が考えられます。
WordPressコアの更新でデータベースがロックされる原因
では、なぜこのようなおかしなエラーメッセージが表示されてしまうのでしょうか。このように「更新」ページで操作ができなくなってしまうのは、なぜでしょうか。
WordPressがコアの更新を実行するたびに、データベースに行が追加され、更新中、時には完了後15分まで、他の更新(プラグインやテーマの更新を含む)は実行できなくなります。たとえインストールに5秒しかかからないアップデートでも、15分間ブロックされてしまいます。
これにはちゃんとした理由があり、データベースのテーブルが2つの異なるソースから同時に更新されると、データベースが破損し、サイト上のデータが著しく失われる恐れがあるからです。
例えば、テーマとコアの更新を同時に実行した場合、どちらの操作も同じデータベースのテーブルを変更することになり、サイト全体がダウンしてしまう可能性がゼロではありません。
このロックは、ユーザーや自動更新機能がサイトや重要なデータを破壊するのを防止してくれます。
深刻な問題につながる恐れがあるため、ロックは手動で解除せず、15分間待ってから次の更新を実行してください。
しかし、どれだけ待ってもメッセージの表示が消えない場合は、手作業で対処しなくてはいけません。(作業完了後は、更新の失敗がサイトを壊してしまった場合に備えて、データベーステーブルの修復の解説記事をご覧ください)
更新進行中のエラーを解決する3つの方法
更新が開始されてからの約15分間は「更新進行中」のメッセージが表示されるのは正常ですので、急いでデータベースを触ることのないようにしてください。しばらく待っても表示され続けるようであれば、手作業で解決していきましょう。
メッセージの表示に気がついてから少なくとも1時間待った上で、これからご紹介する方法のいずれかを試してみてください。また、慣れないうちは特に、バックエンドのファイルを編集する前に、必ずデータベースとサイト全体のバックアップを取ることを忘れずに。
どの方法を取っても解決しない場合、もしくは自分で作業するのが不安な場合は、いつでもサーバーに連絡してサポートを受けることができます。
プラグインを使用する
通常、この問題を解決するには、データベースを調べたり、WP-CLIなどの高度な開発ツールを使いこなす必要がありますが、データを破損するリスクを避けたい場合には、より簡単な方法があります。
Fix Another Update In Progressは、まさにその名の通り、現在進行中の別の更新を解決するプラグインです。長い間更新されていない古いプラグインですが、最近のレビューで現在も問題なく動作することが報告されており、今でも1万件以上インストールが行われていることがそれを裏付けています。
また、このプラグインに代わるものも特にないため、WordPressのリポジトリの中ではこれが最適なプラグインと言えるでしょう。注意点として、現在は開発者のサポートがなく、自己責任で使用することになります。
インストールするには、WordPressにログインしてから「プラグイン」>「新規追加」と進みます。「fix another update in progress」と検索して、このプラグインを見つけてください。クリックするとインストールが開始されます。
また、プラグインをパソコンにダウンロードした後、同じページの上部にある「プラグインのアップロード」をクリックしてアップロードすることも可能です。
プラグインの有効化後、「設定」をクリックすると「Fix Another Update In Progress」が表示されます。
データベースのロックを検出した場合、以下の画面が表示されます。「Fix WordPress Update Lock」ボタンをクリックすると、データベースのロックが即座に解除されます。
その後、「更新」ページが再び操作できるようになっていればOKです。使わないプラグインを残しておくのは良くないため、このエラーが再度発生することがなければ、使用後はアンインストールをおすすめします。
PhpMyAdminを使用する
データベースを詳しく調べたことがなくても、これは非常に簡単な方法で、機密設定に触れない限りは安全です。データベースに手を加える前に必ずバックアップを取り、壊れた行を1つだけ削除しましょう。
まず、PhpMyAdminにログインします。Kinstaユーザーの場合は、MyKinstaからPhpMyAdminにアクセスすることが可能です。別のサーバーを使用している場合は、通常cPanelからアクセスできます。
複数のドロップダウンがある左側のメニューで、サイトのデータベースを開き、「wp_options」を選択します。
「wp_options」をクリックすると、様々なデータベースエントリーのテーブルが表示されるはずです。その一覧の中にある場合もありますが、テーブルが大きすぎて見つからない場合は、テーブルの上にある「Filter rows」のバーに「core_updater.lock」を入力して検索すると、すぐに見つけることができます。
「core_updater.lock」の行の「Delete」をクリックするだけで作業完了です。
これで、WordPressに戻ると自由にサイトを更新できるようになっています。
WP-CLIを使用する
重要なデータベースを触るのに抵抗があったり、テーブルの数が多すぎてよく分からない場合には、WP-CLIを使えば素早く簡単に解決することができます。
WP-CLIとは、WordPressのコマンドラインインターフェースで、これを使用すると、cPanelやPhpMyAdminを手動で操作することなく、データベースやサイトの他の機能の編集が行えます。1行のコードを入力すれば、即座に問題解決です。
最近では、Kinstaを含め、WordPressに特化したほとんどのサーバーには、WP-CLIが予めインストールされているため、複雑な設定はいりません。
コマンドラインを実行する前に、先ほどと同様、必ずサイトはバックアップしておきましょう。
SSHへの接続方法で、より詳しい解説をご覧いただけますが、簡単にご説明すると、MacとLinuxには、すでにターミナルが組み込まれており、Windowsユーザーは、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のエラーはよくあることで、事前に対処法を知っておくと便利です。