WP_AUTO_UPDATE_COREを設定してもWordPressが自動更新されないときに確認したこと
はじめに
かつまたです。
EC2 上の複数の WordPress サーバー(Bitnami の WordPress AMI で構築)に対してセキュリティ更新の適用状況を確認していたところ、自動更新を有効にしているにもかかわらず、1 台だけマイナーバージョンが更新されていないサーバーがありました。
wp-config.php の設定・ファイル権限はすべて正常に見える状態から切り分けを進めた結果、原因は NGINX の root 設定と WordPress の設置ディレクトリの不一致でした。本記事では切り分けの流れと対応をまとめます。
事象
対象サーバーは wp-config.php でマイナーバージョンの自動更新を有効にしていました。
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
しかし、マイナーバージョンの更新が提供されているのに適用されておらず、同一構成・同一設定の別サーバーでは自動更新が完了していました。
wp-cron のイベントがすべて期限切れになっていた
自動更新は wp-cron のイベントとして実行されるため、まず wp-cli でイベントの状態を確認しました。Bitnami 構成では wp-cli の実行に sudo が必要です。
$ sudo wp cron event list --path=/opt/bitnami/wordpress
+------------------+---------------------+-------------------+------------+
| hook | next_run_gmt | next_run_relative | recurrence |
+------------------+---------------------+-------------------+------------+
| wp_version_check | 2026-XX-XX XX:XX:XX | now | 12 hours |
| wp_update_plugins| 2026-XX-XX XX:XX:XX | now | 12 hours |
| wp_update_themes | 2026-XX-XX XX:XX:XX | now | 12 hours |
+------------------+---------------------+-------------------+------------+
すべてのイベントの next_run_relative が now、つまり実行予定時刻を過ぎたまま一度も実行されていない状態でした。
wp-cron.php への POST が 404 を返していた
wp-cron はサイトへのアクセスを契機に、WordPress が自サイトの /wp-cron.php へループバックの POST リクエストを送ることで発火します。NGINX のアクセスログを確認すると、このリクエストが 404 で失敗し続けていました。
$ sudo grep wp-cron.php /opt/bitnami/nginx/logs/access.log | tail -n 3
127.0.0.1 - - [XX/Xxx/2026:XX:XX:XX +0000] "POST /wp-cron.php?doing_wp_cron=XXXXXXXXXX HTTP/1.1" 404 ...
つまり、イベントは登録されているが、wp-cron の実行リクエスト自体がサーバーに拒否されている状態です。
原因
NGINX の server ブロックの root が、WordPress の設置ディレクトリではなく別のディレクトリを向いていました。
$ sudo grep -r "root " /opt/bitnami/nginx/conf/server_blocks/
/opt/bitnami/nginx/conf/server_blocks/example-server-block.conf: root /opt/bitnami/static-site;
- NGINX の
root:/opt/bitnami/static-site(サーバー構築初期に静的サイトを配信していたディレクトリ) - WordPress の設置先:
/opt/bitnami/wordpress(wp-cron.php はこちらに存在)
サーバー構築と WordPress の設置が別のタイミング・別の担当で行われた環境で、構築時点の用途に合わせた root 設定がそのまま残っていた、という経緯です。
このため /wp-cron.php へのリクエストが WordPress に到達せず 404 となり、WordPress の自動更新チェーンが起点で止まっていました。
- wp-cron が発火する(
/wp-cron.phpへの POST)← ここで 404 になり停止 wp_version_checkが新バージョンを確認するwp_maybe_auto_updateが更新可否を判定し、更新を実行する
対応内容
1. wp-cli で本体を手動更新
通常の変更作業であれば、ステージング環境での動作確認を経て本番へ適用します。ただし今回は次の理由から、ロールバック手段を確保したうえで本番へ直接適用する判断としました。
- 適用対象が後方互換の保たれるマイナーバージョン更新であること(自動更新で無人適用される範囲であること)
- セキュリティ更新であり、未適用のまま検証期間を置くこと自体がリスクになること
更新前に EBS スナップショットと DB のバックアップを取得しています。
$ sudo wp db export backup.sql --path=/opt/bitnami/wordpress
$ sudo wp core update --minor --path=/opt/bitnami/wordpress
2. NGINX の root を WordPress 設置ディレクトリへ修正
server ブロックの root を WordPress の設置ディレクトリへ修正し、NGINX を再読み込みしました。
root /opt/bitnami/wordpress;
$ sudo /opt/bitnami/ctlscript.sh restart nginx
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 採用サイト をぜひご覧ください。
※2026年1月 アノテーション㈱から社名変更しました







