ひとりまとめ

もろもろのメモ

WordPress4.7に更新するとFatal errorが出るのはopcacheが原因なことがある

WordPress4.6.1で運用中だったサイトを4.7に更新したところ、次のようなメッセージが出ました。

Fatal error: Uncaught Error: Call to undefined function get_user_locale() in /XXXXXX/wp-admin/about.php:22 Stack trace: #0 {main} thrown in /XXXXXX/wp-admin/about.php on line 22

おおっと。

 

同様な症状の人を探してみると、ここにたどり着きました。

Topic: [Resolved] Call to undefined function get_user_locale « WordPress.org Forums

どうも「opcacheを無効にすると問題なくアップデートするよ」とのこと。

 

opcacheはキャッシュの1種。php.ini で設定できるようですが、僕の場合はMAMPで試していた時にこの現象に出くわしたので、MAMPの設定画面から変更しました。

f:id:g2_girichan:20170105190117p:plain

この「キャッシュ」のところを「オフ」にして、再びWordPressの4.7に更新すると、無事に更新できました。更新後に再びopcachewを使うように戻しても、大丈夫そうでした。

 

ちなみに僕の場合は、エラーが出た時にブラウザをリロードしたら、以下のような画面が出ました。

f:id:g2_girichan:20170105190433p:plain

ここで「WordPressデータベースを更新」ボタンを押すと更新が終わり、かつ正常に表示されました。しかし先ほどのフォーラムなどを見ていくと、全く回復しない場合もあるようです。

 

発生しない環境と発生する環境があったのですが、こんなところに原因があったとは。