なぜ更新が止まってしまうのか?
「今すぐ更新」をクリックした後、画面がちらついたままフリーズしてしまったことはありませんか?Wi-Fiが一瞬切断されたり、サーバーの処理制限(通常30秒)に達したりした可能性があります。その結果、現在、別の更新が進行中です。という頑固なメッセージが表示され、20分待っても消えないことがあります。これでは、メンテナンスの停滞状態に陥ってしまいます。
ロックの仕組み
このエラーは、いわば「安全装置」のようなものです。WordPressは、データベースの破損やサイトの不具合を防ぐために、複数の更新が同時に実行されないように制御しています。更新が開始されると、システムは wp_options テーブルに core_updater.lock というレコードを追加します。通常、更新が完了した瞬間にこの行は自動的に削除されます。しかし、プロセスがクラッシュしたりタイムアウトしたりすると、レコードが残ったままになります。WordPressはそれを見て、更新がまだ進行中であると判断し、新しい試みをブロックし続けるのです。
解決策1:データベースの手動クリーンアップ
内部を操作して手動でロックを削除するのが、最も確実な修正方法です。ターミナル、または phpMyAdmin のようなウェブインターフェースから実行できます。
方法A:MySQLコマンドラインを使用する
SSHアクセスができる場合は、この方法が最速です。データベースにログインし、削除クエリを実行します。
# MySQLにアクセス
mysql -u ユーザー名 -p
# サイトのデータベースに切り替え
USE データベース名;
# ロックが存在することを確認
SELECT * FROM wp_options WHERE option_name = 'core_updater.lock';
# ロックを解除
DELETE FROM wp_options WHERE option_name = 'core_updater.lock';
ヒント:セキュリティのためにインストール時に接頭辞を変更している場合は、wp_ を独自の接頭辞(site77_ など)に置き換えるのを忘れないでください。
方法B:phpMyAdminを使用する
- ホスティングのダッシュボード(cPanel、Pleskなど)から phpMyAdmin を開きます。
- 左側のリストから WordPress のデータベースを選択します。
- 画面上部の SQL タブをクリックします。
- 次のコマンドを貼り付けて、実行 をクリックします:
DELETE FROM wp_options WHERE option_name = 'core_updater.lock';
## 解決策2:WP-CLIによるショートカット
ターミナルがお好みですか?WP-CLIがインストールされているなら、生のSQLを触らずに済みます。このコマンドで、該当するオプションを特定して一括削除できます。
WordPressのルートディレクトリへ移動
cd /var/www/html
ロックオプションを削除
wp option delete core_updater.lock
成功すると、`Success: Deleted 'core_updater.lock' option.` と表示されます。
## 解決策3:プラグインを使用する(コード不要)
データベースを触るのが不安な場合は、プラグインに任せましょう。「Fix Another Update In Progress」プラグインは、まさにこの状況のために作られました。
- **プラグイン > 新規追加** に移動します。
- 「Fix Another Update In Progress」を検索します。
- インストールして有効化します。
- **設定 > Fix Another Update In Progress** を開きます。
- ロックが検出されたら、ボタンをクリックして解除します。
- 完了後は、サイトを軽量に保つためにプラグインを削除してください。
## 確認:正常に戻ったかチェック
ロックが解消されたら、**ダッシュボード > 更新** に戻ってください。エラーメッセージが消え、通常の更新ボタンが表示されているはずです。もう一度更新を試してみましょう。もしエラーがすぐに再発する場合は、サーバーの `max_execution_time`(最大実行時間)制限に達しており、更新が失敗するたびにデータベースが再ロックされている可能性があります。
## 今後のタイムアウトを防ぐ方法
多くの共有ホスティングでは、PHPのタスクが30秒または60秒に制限されています。大規模なコアアップデートでは、ファイルの解凍や移動にそれ以上の時間が必要になることがよくあります。再発を防ぐには、`.htaccess` または `php.ini` ファイルで実行制限時間を増やしてください。
.htaccessに追加する場合
php_value max_execution_time 300
または php.ini を更新する場合
max_execution_time = 300
これを300秒(5分)に設定すれば、重いアップデートでもWordPressが処理を完了するのに十分な余裕が生まれます。

