今朝のことですが、プラグインをアップデートしてから記事を書こうとしたら投稿画面が表示されずにいわゆる「真っ白画面」になってしまいました。
WordPressのプラグインアップデートはほぼ問題が起こったことがないのですが、前回のWordPressもくもく会でプラグインのアップデート自体で問題が起こったりもしていたので、今回はそういうときの調査方法や対処方法について書いてみたいと思います。
新規投稿をしようとしたら画面が真っ白になってしまった状況
WordPressの新規投稿をしようとしたら画面が真っ白でした。何も表示されませんし、ソースも表示されません。
ダッシュボードに入ろうと思ってもやはり何をクリックしてもすべてが真っ白です。
幸いなことにブログの表示は問題ないことを確認してちょっと安心しながら原因を調査しました。こういうとき、問題が起こる直前に何をしたか(あるいは何もしていないか)を明確にする必要があります。
今回直前に行った行動は「ログインして、プラグインのアップデートが2つあったのでアップデートをした」ということです。ということはこの行為が今の状況を招いたことにほぼ間違いがないだろうなと思いました。
アップデートしたプラグインは AMP と Search Meter です。
問題が起こったときの調査方法
問題が起こったとき、だいたいの場合は他にも同じことが起こってしまっている人がいます。自分が何かしてしまったのでは?と思いがちですがFTPでファイルを消しちゃったりしない限りは他からの要素で問題が起こることの方が圧倒的に多いからです。
Twitterで調べてみる
影響が大規模の場合はTwitterで検索をかけると同様の人がかならずつぶやいています。
例としては以前WordPress本体のアップデートで文字コードが変更されたときにエラーが起こってしまったときがあり、そのときは多くの人がつぶやいていました。
またTwitterで多くの人がつぶやいている場合は問題解決の方法を誰かが書いている可能性が高いですし、WordPress本体のように多くの人に影響がある問題となればすぐに改訂版が発表されることになります。ですのでまぁそういうときは問題解決方法を見て対処するか、次回のアップデートを待てばいいと思います。
Googleの検索でも結果は見ることができますが「今すぐ今起こっている問題を検索したい」というときはTwitterが一番早く調べることができます。
今回の場合ですが WordPress プラグイン でTwitter検索しても問題が起こっている、というTweetは見つかりませんでした。ということはそれほど大規模な問題ではなく、やはりプラグインのアップデートをした人だけに影響が出ている問題なのだろうと思いました。
Twitterでの検索はWordPressなどだけでなく、「サーバーのせいでWebサイトが落ちている」とか(レンタルサーバー名で検索)、「ネットにつながらない」とか(ocnなど通信会社名で検索)のときも調べるのに有効な方法です。
エラーログを取るようにして、実際のエラーが起こっている箇所を特定する
実際にはどこでエラーが起きているのか?ということを見てみたかったので検索してこのページを見つけました。
WordPressでダッシュボードにつなげようとしたら真っ白になった状態を復旧
私の場合とほぼ同じ状況が起こっていたようです。ログの取り方が書いてあったので、サーバーのwp-config.phpをダウンロードして
define('WP_DEBUG', false);
となっている箇所を
define('WP_DEBUG', true); if(WP_DEBUG){ define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); }
と置き換えます。そして再度 新規投稿 をしようとして真っ白の状況を再現してみます。
サーバーのwp-contentにdebug.logというファイルができたので、ダウンロードして中身を見ると
[12-Oct-2016 00:05:22] PHP Parse error: syntax error, unexpected '[' in /xxxx/xxxxxxx/xxxxxxxxx/wp-content/plugins/search-meter/admin.php on line 665
というエラーが出ていました。プラグインのsearch meterでやはりエラーが起きていました。
該当行を参照すると、
$results_array = [[__(‘Date’, ‘search-meter’), __(‘Search terms’, ‘search-meter’), __(‘Searches’, ‘search-meter’), __(‘Results’, ‘search-meter’)]];
という、行でした。この書き方がサーバーのPHPではエラーになる原因のようです。
プラグインではないか?という疑いの時は wordpress.org/plugins/ で調べる
search meterのアップデートで問題が起こって、でもすべての人の問題でもなさそう。PHPのバージョンかな?と思いました。
確認するためにプラグインのサポートページを見てみました。こういう場合は
https://wordpress.org/plugins/
wordpress.orgのプラグインの情報を見ます。
search meter で検索をして
名称をクリック
どのプラグインでもサポート用にフォーラムがありますので View support forum をクリック
一番上に、私の状況と同じ方からの投稿を発見しました。
やはりPHPのバージョンの問題ということがはっきりしました。
私の場合、5.2ではありませんでしたが5.6でもありませんでした。
解決方法:レンタルサーバーのPHPバージョンを5.6にする
ということでさっそく、レンタルサーバーのPHPのバージョンを切り替えます。
XSERVER(エックスサーバー)での方法
エックスサーバー
のダッシュボードで
ホームページ PHP Ver.切替 をクリックして
PHP5.3.3 だったPHPのバージョンを
PHP5.6.22 に変更して バージョンを切り替える をクリック
これで 新規投稿 をクリックしたところ、問題なく使えるようになりました(^^)/
それにしても、、、PHPのバージョンはあえて指定していなかったので、以前ドメインを設定したときのデフォルトがPHP5.3.3だったようです。
さくらのレンタルサーバーでの方法
WordPressもくもく会で相談された人はさくらのレンタルサーバ
を使っていましたので、こちらでのPHPバージョンのアップ方法も書いておきます。
コントロールパネルからログイン後 アプリケーションの設定>PHPのバージョン選択 をクリック
こちらも今現在はPHP5.4となっているので
PHP5.6 を選択して 変更 をクリックします。これでPHPのバージョンをアップグレードすることができます。
おまけ:PHPのバージョンアップでエラーが出る可能性もあります
今回のようにPHPの新しいものでしか動作しないコードが書いてあるときは、PHPのバージョンをアップすれば動くようになります。
しかし、その逆にPHPの古いものでしか動作しないコードが書いてあるときは、PHPのバージョンをアップしたことで動かなくなりエラーが出る可能性もあります。
本来的にはプラグイン作者の人が今現在サポート外となっているPHPのバージョンでしか動かない場合は、動くようにメンテナンスしていく必要があるのですが、無償のプラグイン提供者ですので必ずしもそのようにしていけるということも難しいと思います。そのため、まれではありますが新しいPHPにした場合にエラーが起こるプラグインがあるかもしれません。
そういうときのためにも「多くの人が使っている」「実績のある」プラグインを使っておくと、良いかと思います。そういうプラグインならなにかエラーが起きたときに「動かない」と声を上げる人が多くなり、問題解決方法が見つかったり、作者によるメンテナンスが行われる可能性が高くなるからです。
いずれにしても問題が起こったときは落ち着いてTwitterの検索などから調べ始めると問題は解決できることが多いと思います(^^)/
コメント