wordPressのwhiteout
ブログを運営していて、「突然、真っ白になって表示できなくなる。」という事があります。
インストールして使うブログは、エラーがあっても、そのエラーを画面に表示しないように設定するのが常識です。
初心者の時には、絶望感に打ちのめされます。初心者でない人は、恥辱感にまみれるでしょう。
まるで何が起こったんだかわからなくなる、ブログのホワイトアウトについてのメモです。
先日、ワードプレスの画面が真っ白になってしまった。
エラーなんだろうな?とか、考えつつ、、、、
30分ほど前に、十数(数十)枚開いていた関連ファイルを、「あ"〜」とか言いながら、乱暴に閉じてしまった。
たぶん原因はあれとは思ったが、もう、どこがあれか、、、、
ワードプレスは、エラーを通常表示しないようなっているから、エラーがある場合には、画面が真っ白になる。
エラーを表示させるためには、
wp-config.phpに
define('WP_DEBUG', true); ini_set("display_errors",1);
を書いておく。
特別なエラーが出ていないかチェックする。
noticeレベルのエラーは、結構普段から出ている様子。
レスポンスヘッダも確認する。
エラー表示を止めて、htmllint等で、レスポンスヘッダを確認できるようにチェックを入れて、
ヘッダを確認する。
例えば、私の真っ白なページは、こんなレスポンスだった。
500 Internal Server Error Connection: close Date: Sat, 27 Jun 2009 11:54:07 GMT Server: Apache Content-Type: text/html Client-Date: Sat, 27 Jun 2009 06:54:07 GMT Client-Peer: ***.***.**.**:80 Client-Response-Num: 1 Client-Transfer-Encoding: chunked
wordPressと500や403の組み合わせて検索すると、そのヒット件数の量に驚く。
代表例としては、mod_rewriteが効いていない。ということのようですが、それ以外にも原因はありそうでした。
その中には、いわゆる共有サーバの広告挿入機能や、cgi動作のphpに由来する問題も結構あると思いました。
phpをcgiとして動作させると、header()等の関数は機能しなくなります。
世の中のブラウザは、ヘッダーに忠実に動作するものが増えてきており、その影響で、何かと微妙なエラーを発生させます。
ワードプレス自体も、ちゃんとヘッダを付け直して、レスポンスするように、いろいろ工夫されています。
例えば、
wordPressのタグ機能を使っていて、新しいタグを登録する場合、赤い枠線で囲まれたタグ名が表示される場合、それは、ajaxが読み込むxmlのヘッダが、text/htmlで返るのために、そのようになっているのかもしれません。
なぜか、突然スタイルが適用されなくなって、という問題も、ヘッダが悪さをしている場合があります。
でも、大体はちゃんと動いているように見えるので、それで満足しているんです。
正しく動いているかどうか、意外とわからない。
ホワイトアウトして初めてわかる。「今まで、相当おかしかったんだ。」