ある日のこと。Wordpressを使って運用しているサイトが、管理画面も含めてすべて真っ白になっていました。
原因は、単純なことだったんですけども、この現象はわりと多くの人が通る道だと思うので、復旧までの道のりを参考までに記しておきます。
こういう現象って、解決してしまえばどうってことないんですけど、原因にたどり着くまでに、遠回りさせられてしまうんですね。
現象は、突然訪れた。前日の夜まで表示されていたものが、翌朝開こうとしたときに、突然真っ白な画面になっていた。管理ページにすら入ることができず、一瞬、ハッキング? と頭をよぎったけれど、そんな狙われるサイトでもなかろうと思い直して、エラーの原因を考えた。
もしかしたら、昨日行なった作業に、なにかミスがあったのかもしれない。しかし、前日に行なったことを思い返してみたけれど、毎日行なっている更新作業をしているだけで、いつもと変わったことはしていない。
となると、サーバが原因だろうか?
メンテをしていないか、まず同一サーバで運営しているサイトを確認。こっちは表示されていた。サーバは、ちゃんと動いてる。
FTPで入ってみても、データは残っているから、消えてしまったわけでもない。
これは、データベースに問題があるに違いない、と思って検索かけて調べてみる。
すると、データベースのオーバーヘッドが溜まると、ページが表示されなくなる、とあった。
あ、これだ! と思ってさっそく、サーバの管理ページから、phpMyAdminに入って、該当のデータベースを最適化してみた。
だけれど、ページは真っ白い。なにも変わっちゃいなかった。
あれあれ、ダメだぞ?
直ると思い込んでいたから、少し焦る。
今、この瞬間にも、サイトにアクセスして、「あれ? 真っ白じゃないか」と言いながら離脱していく、顔も知らないユーザーの顔が浮かんでしまう。気持ちは焦るばかり。
もう1回、「wordpress 真っ白」で検索かけてみる。
今度は、エラーの原因を表示させるために、wp-configファイルに「define(‘WP_DEBUG’, true); 」と記述するとあった。デフォルトの設定では、エラーが表示されず、真っ白い画面になってしまうので、trueにしてあげないといけない。
何がエラーを起こしているか分かれば、そこを修復すればいい。これで復旧に漕ぎつく人が多いようだ。よしよし、これだ、と思って記述を変更してみた。けれど、エラーは表示されず真っ白い。
えええ?
これは、厄介なことになりそうだ、と困りながら復旧方法を探っていると、
今度は、ルートディレクトリの.htaccessに「php_flag display_errors On」と記載するとエラーの表示がオンになるとあったので、やってみた。だけど、画面は変わらず真っ白い。もう、頭の中も真っ白い。
落ち着け、落ち着くんだ。データは消えていない。必ず復旧できる。原因はどこかにある。焦りの渦に溺れては、事態が悪化してしまう。この世に不思議なことなどなにもないのだよ。と言い聞かせて、焦った頭で考える。
WordPressの真っ白現象は、いろいろなことが原因で起こりうる。これまでにも、何度かバグを起こしたことがあった。
よくあるのは、“function.php”の記述ミスだとか、プラグインやWPのバージョンアップが原因となることが多い。これらの原因は、作業の直後にエラーが出るので分かりやすい。
しかし、今回はなにもいじっていない。
と思ったけど、無意識になにか変えてしまったのかな?
プラグインの更新とか、クリックひとつで出来ちゃうし。と自分を疑って、試しにFTPからプラグインをすべて削除してみた。
だけど、当然のごとくページは現われない。
そりゃ、そうだよね、と思いつつ、次はWordpressのテーマを削除して、初期設定の“twentyten”にしてみた。
テーマが原因ということも、往々にしてあり得る。しかし、ページは白いまま。テーマは、ここ数ヶ月いじってないし、当然だよね。
良くない事態に陥ると、原因とは関係ないことまで平気で疑ってしまう。昨日の自分は、なにもいじくっていないんだ。疑心暗鬼なことこのうえない。
きっと、昨日の自分と、今日の自分が対面してたら、喧嘩していたはずだ。
index.phpのパーミッションを「755」に変更して直った、という人もいたので、藁にすがりつく思いで飛びついてみたけれど、やはりそれは藁だった。まったくもって進展しない。
途方にくれて、Wordpressの再インストールを覚悟して、バックアップを取り始める。
もう、打つ手がこれしかないなら、これしかないんだ。置かれた境遇を楽しもう、これをネタにブログを書けばいいじゃないか、と自分をなだめて、息抜きするため外に出て、ぼんやりと「再インストールするの嫌だなぁ」と、ひたすらエラーの要因になりうることを考えていた。
だいたい、再インストールで直ったとしても、原因が分からないというのが心地悪い。再発の恐れだってある。
元来、人間は、分からないということを怖がるものなのだ。昔の人たちは、原因不明の現象を、呪いだとか、妖怪のせいにして、納得させてきたという。
さしずめ、今回の現象は、妖怪「白画面」というところだろう。
そんなことは、どうでもいい。
改めて原因を考えてみたけれど、どう考えても大したことではないはずなのだ。
なにしろ、なにもしていないのだから。
なにもしていない状況で起こり得ることはなんだろうか。サーバか、MySQLか、データベースに問題があるか。それともアクセス過多か。
この中のどれかに違いない。長時間サーバがダウンするほど、アクセスが殺到することは考えられないので、前者のいずれかだ。
PHPの動きを止めるって、MySQLが妖しいな。ん、PHP? メモリは?
と思いついて、wp-configからメモリの上限を変更してアップしてみた。
すると、あっさり解決できた! という簡単な原因なのでした。
妖怪「白画面」の正体はメモリ不足でありました。
でも、まだまだ分からないことがあって、なんでエラーを吐かないのか謎のまま。
今回行なった作業は、以下の6点でした。
・phpMyAdminからデータベースの最適化
・wp-cinfigに「define(‘WP_DEBUG’, true); 」記述
・.htaccessに「php_flag display_errors On」記述
・プラグインは削除
・テーマは初期設定
・メモリの上限アップ