Wordpressアップデート後、管理画面に入れない

Wordpressアップデート後、管理画面に入れない

Wordpressアップデート後、管理画面に入れない

WordPressのバージョンをアップデートした後、管理画面に入ろうとすると/wp/wp-admin/upgrade.php?_wp_http_referer=%2Fwp%2Fwp-admin%2Fへとリダイレクトされ続け、「更新の必要はありません WordPress のデータベースはすでに最新です !」と表示されて、入れなくなってしまいました。解決方法について記載します。

発生原因

この画面にリダイレクトされる原因は、Wordpressのバージョンアップ後、Wordpressのバージョン情報がウェブサーバー側とデータベース側とで一致しないことで起きるようです。

Ref: https://github.com/WordPress/WordPress/blob/master/wp-admin/admin.php#L51-L55

対処方法

ということで、Wordpressのバージョンをデータベース側のバージョンと比較してみました。

WordPressのバージョンはwp-includes/version.phpwp_db_versionにセットされています。

$ heroku run bash -a jikoblog
Running bash on ⬢ jikoblog... up, run.4394 (Free)
~ $ pwd
/app
~ $ grep "wp_db_version =" web/wp/wp-includes/version.php
$wp_db_version = 51917;

データベース側では、wp_optionsテーブルのdb_versionというカラムにセットされています。

ここで両者のバージョンがなぜか一致してない場合は、Wordpressのバージョン($wp_db_version)をデータベースに格納されているバージョン(wp_optionsdb_version)と合わせてあげることで、とりあえず例の画面は突破し管理画面に入れるようになると思います。

ちなみに、私の場合は↑の通りバージョンが両方とも51917で一致してました。にも関わらず、本現象が起きており数時間ほど迷ってしまったのですが、結果的に犯人はRedisサーバーでした。アップデート作業時にRedisの情報が更新されてなかったようで、、、heroku redis:cliでHerokuのRedisに接続し、flushallコマンドでRedisのデータをクリーンアップしたら、その後はMySQLデータベースの最新の情報が取得され、現象が解消し管理者ページには入れるようになりました。

$ heroku redis:cli
Connecting to redis-asymmetrical-69722 (HEROKU_REDIS_MAUVE_TLS_URL, HEROKU_REDIS_MAUVE_URL, REDIS_TLS_URL, REDIS_URL):
ec2-44-196-208-213.compute-1.amazonaws.com:22940> flushall
OK

ほかにもパフォーマンス向上のためのキャッシュ関連のプラグインを利用していると、私のようにデータベースは更新されているのに、キャッシュの情報が参照されていることで同様の現象になることが起こりうると思います。ご注意を!