WordPressの自動アップデートが働いていない場合

例のWordPressの脆弱性について、何故か自動アップデートが機能していないサイトが有った、という話にTwitterでなったのでちょろっと。

WP4.7 のREST APIの深刻なバグについて ~検証環境~

WordPress が自動アップデートされない!

ほかに、

  • Load Balancer前に挟んでいて同期がちゃんとできていない
  • WPがパーミッション等問題で自動更新できない
  • サーバーから自ドメインにHTTPリクエスト出来ない
  • 証明書検証で死んでいる

なんかも考えられる。

WPのcronについて

ところでwp-cronでググると無効化する方法!みたいなのばっかヒットする。

wp-cronはcronを用いずに非同期のタスクを実行するための仕組みなので普通は無効化する必要はないし、するべきでない。

もし無効化するのなら、cronでwp-cron.phpやwp-cliのwp cron event run --due-nowを叩くか、外部のcronサービスを用いてcronをじっこうしてやるべきである。

たとえばwp-cronを無効化していると自動更新だけでなく、予約投稿とかも使えなくなるので注意すること。


WPの自動アップデートが正しく機能しない主な原因は上に上げたようなものだが、それ以外もあると思う。


【追記 2018/2/7】WP4.9.3で壊れた…

この追記時点において、WordPress 3.7以降で自動アップデートが働かなくなってしまったバージョンが唯一存在している。WordPress 4.9.3だ。(#43103で誤って無効化されてしまった)

もし、自動アップデートで4.9.3になっている場合、手動アップデートが必要なので注意。4.9.3リリース翌日に4.9.4はリリース済み。(手動といっても管理画面1クリックで問題ない。)

なお、管理画面からアップデートする他、

  • WP-CLI でアップデート (wp core update)
  • コマンドラインからのPHP直接呼び出し (php -r 'include "wp-load.php"; wp_maybe_auto_update();')

といった手段も紹介されている。

WordPress 4.9.4 Maintenance Release

WordPress 4.9.4 Release – The technical details

Advertisements

コメントを残す