WordPressバージョンアップで真っ白

リタイヤ日記

新年からびっくりしました。Wordpress5.3.2のバージョンアップをしばらく放っておいたので、今の内にアップデートしようとしたら画面真っ白になってびっくりしました。

管理画面にすら入れない状態だったので焦りましたよ。
いろいろ検索して解決までなんだかんだと3時間くらい浪費してしまった。

管理画面に入れない場合

kusanagiで運用している場合、特に意識せずにインストールしていると以下にwp-config.phpがあります。

/home/kusanagi/***/Document/wp-config.php
(うろ覚えですがこんな感じのパスだったはず)

で、適当な箇所に以下を追記(もしくはfalseをtrue)に変更してやります。

define('WP_DEBUG', true);

私の場合は上記で管理画面には入れるようになりました。

問題の切り分け

で、プラグインが原因なのか、テーマが原因なのか切り分けると思うんですが、今回の場合はWordpress5.3.2へのバージョンアップが原因なのでどちらも違うはずです。
念のためプラグインを全て無効にしてみましたが、やっぱりだめ。

一方、テーマを切り替えるとあれ?動くぞ。
エラー吐いてますが。

Undefined [16777217] Call to undefined function date_create_immutable_from_format() in ~~/wp-includes/general-template.php on line 2645

date_create_immutable_from_format ってPHPの関数らしいのでこれが未定義のはずがなさそうなんだよなぁ。

別のテーマにしてみるとエラーも吐かずにちゃんと出力されてる。
んー何が原因?デバッグモードを解除するとやっぱり動かない。

WordPressの更新でファイルが一部破損しているのか?とも考え、WordPressを再度更新かけてみたけど、やっぱりだめ。

原因は?

とりあえずgeneral-template.php が怪しいってことで調べていると、HHVMの関係でおかしくなっているんじゃないか、とのこと。

どういうことかと言うと、kusanagiはアプリケーションサーバーの実行環境をHHVMとPHP7、PHP5から選べるんですね。で、PHP5時代は遅くて遅くて使い物にならなかったのでより高速なHHVMが使われていました。
ところがPHP7時代に入ってPHPも高速化が進んだことと、HHVM側がPHPから距離を置くようになったことで、結果的にPHP7しか選択肢がなくなります。

私はそんなこととは露知らず、HHVMで動かしてました。HHVMという事すら今回初めて知りました。てっきりPHP5.6で動いてると思ってた。セキュリティ意識のかけらもねぇや、ハハ。

じゃあPHP7.3をインストールしなければ、と奮闘していたんですが、なんとkusanagiはコマンド一発で切り替えれます。

kusanagi php7

これだけ。シンプルでしょ?
HHVMに戻すこともできますが、将来性がないので皆さんPHPへ移行しましょう。

たったこれだけで表示されるようになりました。
ついでにWordPressダッシュボードのPHPバージョンの警告も消えたし、めでたしめでたし。

コメント