「wordpressの画面が真っ白になって、しかもログインすらできなくなった」という怖い噂を時々耳にしていました。
この怖い噂が実は都市伝説ではないことを知ったのは昨日のこと。自分が開設サポートした人から「プラグインを更新したらfatal errorがどうのこうのと画面に出てくるだけでログインできない」という連絡が。
実はこの画面が真っ白事件、そんなに珍しいことではないらしいですが、今回はプラグインが原因の場合の対応について、書きたいと思います。
この記事の内容
■fatal errorのメッセージ以外は画面が真っ白……
クライアントの方の話によると、画面が真っ白になってfatal errorのメッセージが出てくるまでの時系列としては、次の通りです。
ちなみに、写真は、そのときのwordpressの画面のイメージです。写真撮り忘れたのですが、概ねこんな感じです。(セキュリティの関係上、ユーザー名やURLがわかるところは伏せています)
・ブログ記事を1記事更新した
・プラグインをいくつかバージョンアップした
・この直後に画面にfatal error等のメッセージが出てきてログインできなくなった
・焦ったけど、そのあと、エックスサーバーやFTPも含めて何も操作はしていない
※この時点でFTPソフトは入っていなかった
このあと、実行した内容は次の通りです。
・ffftpの設定
・ewww-image-optimizerフォルダ内の中身を全削除
※EWWW image optimizerをffftpを利用して削除したということ。
・相性が悪いと言われるNo self Pingsも削除
・削除したら画面が復活。ログインも可能に。
・EWWW image optimizerの再インストール
・No self Pingsはしばらく削除したまま
これで一件落着、一安心です。いやー、良かった。実は、この対応初めてやったので、ちょっとドキドキしていたんです。
しかし、ffftpからプラグインを削除したら、あっけなく解決することができました。
これから、この対応方法について詳しく解説していきます。なお、ffftp等のFTPソフトを設定していることを前提としてお話しします。
まだFTPソフトを導入していない場合は、ffftp等を設定してからお読みください。
■fatal errorのメッセージが出てこない場合
今回、最初からメッセージが出てきたみたいですが、人によっては、fatal error等のメッセージが出てこなくて、本当に画面が真っ白の状態になります。
この場合は、wordpressの設定ファイルであるwp-config.phpの修正が必要になります。
wp-config.phpをダブルクリックすると、次のコードが出てきます。(写真はffftpを例にしています)
define(‘WP_DEBUG’, false);
このfalseの部分を、trueにします。
define(‘WP_DEBUG’, true);
このコードは、エラーメッセージの表示、非表示を切り替えるコードです。trueに変更することで、エラーメッセージを読み取れるようになります。
■fatal errorの原因のプラグインの特定の方法
今回起きた事象を例にとって説明すると、fatal errorの原因となっているプラグインと、ffftpでの格納場所については、上の写真の赤字部分で特定することができます。
今回はpluginsフォルダの中ということなので、あるプラグインが原因と断定できます。
さらに、pluginsに格納されているewww-image-optimizerフォルダの中が原因と断定できるので、EWWW image optimizerが原因だとわかります。
■fatal errorの原因となっているフォルダを丸ごと削除
そうなると、あとはewww-image-optimizerフォルダを丸ごと削除するしかありません。
※プログラミングに自信のある方は、直接PHPを修正しても良いですが、責任は持ちません。プラグインの不具合であれば、まるごと削除して、ログイン後に再インストールすれば済む話です。
今回原因となっているffftpのフォルダは、写真のように次の順番で探していきます。
public_html
⇒wp-content
⇒plugins
⇒ewww-image-optimizer
そして、ewww-image-optimizerを丸ごと削除します。これで画面が復活して、ログインすることができるようになります。
EWWW image optimizerは画像を自動圧縮する重要かつ重宝するプラグインなので、ログイン後再インストールしています。
■【補足】EWWW image optimizerとNo self Pingsの相性が悪いらしい
今回、EWWW image optimizerをいったん削除しただけではなく、ついでにNo self Pingsも削除しています。No self Pingsの再インストールはしていません。
というのも、この2つのプラグインは、あまり相性が良くないと聞いたからです。もし、EWWW image optimizerが原因で画面が真っ白になった場合は、No self Pingsも削除しておいた方が良いでしょう。
No self Pingsはセルフピンバックを停止してくれるプラグインなので、これも便利なプラグインなのですが、とりあえずなくても問題はありません。セルフピンバックを手動で拒否する手間はでてきますが、再び画面が真っ白になるよりはましなので。
■画面が真っ白になった場合のまとめ
・ffftp等のFTPソフトを設定すること
・fatal errorの中身から原因を特定すること
・プラグインが原因であれば、フォルダを丸ごと削除してログイン後に再インストール(不要なプラグインであれば削除したままにする)