読書とプログラミングを中心とした覚書ブログ

読書とプログラミングについて、日々経験したことを忘れないようにするため、極力ブログに記録を残すように頑張る。

バージョンアップしたら画面が真っ白になる問題

 公開日     更新日  2014/11/22

 

coffee-386878-2

本日、WordPress Popular Postsを最新の3.1.0にバージョンアップしたところ画面が真っ白になる問題に直面しました。
困ったことに管理画面も全てが真っ白になっており、プラグインの無効化すら出来ない状況に陥りました。

ようやくサイトを復旧することが出来、きっと今後もこのような問題が起きえるのだろうと思いますので、今回実施した暫定対策についてまとめたいと思います。

Information

本記事にある問題は、3.1.0で起きる問題ですが、直後にリリースされた3.1.1にて対策されました。

問題点について調べてみました

WordPress Popular Postsのサイトを見ると、Support(サポートフォーラム)があり、また開発用のGitHubが紹介されてましたので、真っ先に事例がないかを調査。
案の定、世界中で同様の症状があるようです。例えばこの辺り・・・

site crash

hello, after updating to the last version 3.1.0 my site crashes. it only shows blank pages, nothing works so i manually deleted the wordpress-popular-posts folder from plugins to be able to run the site again. :|
i hope you can fix this.. thanks.

余談になりますが、このとき返信としてWSODというキーワードが出てましたが、これはWhite Screen Of Deathってことで何も操作できない真っ白い画面という意味とのこと。
類似用語に、WindowsのBSOD(Blue Screen…)、VMwareのPSOD(Purple Screen…)などがある模様。

このスレッドの最後でExif拡張モジュールを追加してサーバーをリスタートすれば回復するという返信がありました!

Exif拡張モジュールを使った回復について

スレッドで紹介されていた対策案は以下のコードをphp.iniに追記してサーバーをリスタートという対策です。

上記定義はPHP実行時に拡張モジュールの有効設定であって、php_exif.dll(とその前提?のphp_mbstring.dll)というのが今回問題となっている原因箇所を対策できるモジュールとのこと。

WordPress Popular Posts 3.1.0での修正差分を見ると、wordpress-popular-posts.phpの以下の箇所で@exif_imagetypeを使うように変更されていて、どうもここが怪しいようです。

ただ、元々のコードでも別箇所にて、既にexif_imagetypeは使ってたけど、問題なかったということは一度も通過しないコードだったということなんでしょうかねぇ…。

しかしながら、どちらにしても残念ながら我がサイトはレンタルサーバーなので、extensionの追加は無理ですよね

プラグインを古いバージョンに戻す

とりあえず、サイトの回復が最優先なのだから、壊れたプラグインを古いバージョンに戻すことをします。

WordPressを使わないで壊れたプラグインを除去

WordPressが全く使えないので、まず管理画面の回復をします。
これは以下のディレクトリに有るWordPress Popular Postsプラグイン用のディレクトリを退避すればとりあえず表示ができるようになるようです。

インストールしたバージョンによってディレクトリが若干違う場合があるかもしれません。

 古いバージョンのプラグインをインストール

WordPress管理画面が回復しましたが、WordPress経由で旧バージョンの取得方法がよくわからなかったので、今回はプラグイン作者さんのGitHub経由で入手しました。
以下のようにプラグインの手動登録機能を使い登録。

  • WordPress Popular PostsのGitHubよりリリース一覧のなかから、3.1.0の一つ前のリリースである3.0.3に対して「Source code(zip)」を選択してダウンロード。
  • 回復させたWordPress管理画面の「プラグイン – 新規追加 – プラグインのアップロード」にてダウンロードしたzipを選択。

ここまででサイトは回復した模様です。
依然としてプラグインのアップデート通知が来てますが、もう少し待ったほうが良さそうですね。

念のため独自対策のやり方も準備

今回問題となっているのは、拡張モジュールで提供されるAPIを使ったこと。
ということは、単純にphpの関数を使って「if (function_exists(‘exif_imagetype’)) {」というように囲ってあげれば回避は可能と思います。

もしWordPress Popular Postsプラグインの作者さんが直さないという結論を出すのでしたら、この辺り自力で対策を考えるしかないのでしょうか・・・。

正式対策版がリリースされました[2014年10月13日追記]

1日経ってWordPress Popular Postsのサイトを見ると、既に対策版として3.1.1がリリースされていた模様です。

ChangeLog

3.1.1

  • Adds check for exif extension availability.
  • Rolls back check for user’s default thumbnail.

ソース変更点1。単純に3.0.3に戻したという変更のようです。

ソース変更点2。こちらはやはり元々からある問題という認識だったようで、関数チェックが追加されていました。

動作上も、大きな問題もなくバージョンアップは完了しました。
良い経験にはなったけど、できればこういうところで躓くのは勘弁したいところです。

変更暦

  • 2014年10月12日:初版
  • 2014年10月13日:WordPress Popular Posts 3.1.1にて正式対策されました。

レスポンシブ広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

  関連記事

関連記事はありませんでした

バージョンアップしたら画面が真っ白になる問題