wordPressのwhiteout

f:id:tenman:20090701094403j:image

wikipedia: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で返るのために、そのようになっているのかもしれません。


なぜか、突然スタイルが適用されなくなって、という問題も、ヘッダが悪さをしている場合があります。

でも、大体はちゃんと動いているように見えるので、それで満足しているんです。



正しく動いているかどうか、意外とわからない。


ホワイトアウトして初めてわかる。「今まで、相当おかしかったんだ。」