ログ日記

作業ログと日記とメモ

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を使っていたから。。
思わぬところで時間をくった。DebianApacheが悪かったんじゃなくてファイルシステムのせいだったとは。。しかも初めの方はIEでチェックしてたから余計に躓いた。IEのキャッシュの変な動きがよくわからない。


こういうハマりポイントがあると、本番でunionfsを使うのはダメだな・・。