Debian (etch) のapache2で画像が表示されない
画像とかcssとか全然表示されない・・。
$ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /img/hoge.jpg HTTP/1.0 Host: localhost HTTP/1.1 200 OK Date: Wed, 07 Mar 2007 20:38:28 GMT Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8 mod_perl/2.0.2 Perl/v5.8.8 Last-Modified: Wed, 07 Mar 2007 19:55:58 GMT ETag: "a7e-3d1-943d4f80" Accept-Ranges: bytes Content-Length: 977 Connection: close Content-Type: image/jpeg Connection closed by foreign host.
なんでヘッダだけ出力してコネクション切ってるの・・。
ヘッダはちゃんと出てるしContent-Lengthも合ってるから当然エラーログは無い。
http://72.14.235.104/search?q=cache:0_-iUYLIjV8J:pc10.2ch.net/test/read.cgi/mysv/1136360465/153-252+etch+apache2+%E7%94%BB%E5%83%8F&hl=ja&ct=clnk&cd=3&lr=lang_ja >>208
情報交換BBS
・・・と思ったらiconsのフォルダ画像なんかは表示される。
自作画像を /usr/share/apache2/icons/ 以下に入れたらちゃんと表示される。・・・なんで?
あと画像サイズが50バイト程度のものも表示される。
apacheのログレベルをdebugにしたら原因が分かった。
Invalid argument: core_output_filter: writing data to the network
こんなログが出てたよ・・。こっちは検索でヒットする。
EnableSendfile Off
とすることで解決した。
で、検索してもあまりヒットしなかった理由は・・・普通はsendfileに対応しているファイルシステムを使うもんね。私の場合/home以下はunionfsを使っていたから。。
思わぬところで時間をくった。DebianやApacheが悪かったんじゃなくてファイルシステムのせいだったとは。。しかも初めの方はIEでチェックしてたから余計に躓いた。IEのキャッシュの変な動きがよくわからない。
こういうハマりポイントがあると、本番でunionfsを使うのはダメだな・・。