As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

apache 設定3題

apache 3つ話。
  • cifs マウントしたfilesystemを 公開するとき。
  • mount -t cifs した,cifs 領域を apache経由でweb公開したところ、どのファイルも 0 byte になってしまう。access_log にはちゃんとファイルサイズ相当を送出したとあるし,error_log にも何もない。けど、client側でpacketみてもファイルは送ってこない。debug modeにしてみたら、
    Value too large for defined data type: core_output_filter: writing data to the network
    とのメッセージ。'EnableSendfile Off' をDirectory directive に書いて何とか解消。
  • unix shell 上でのファイル名の日本語文字化け
  •  とりあえず、ファイルがダウンロードできるようになったかと思ったら、文字化けが直らない。まずは、そもそも、cifsでマウントした段階で日本語になって欲しいので、 codepage=...,iocharset=... と試してみたが、ダメ。どうやら、cifsサーバが古い(samba-2.x)なのでsjisでしか返してこないことらしい。ダメじゃん。
  • Directory Index
  • 上記ディレクトリではあるが、binaryで帰ってくるのでそのまま apache 経由では charset=Shift_JISで流せば、ブラウザ(http プロトコル)上でちゃんと日本語ファイル名が見える。  いろいろ探したが、
    IndexOptions Charset=Shift_JIS
    と設定してやることで、ブラウザ上でちゃんと charset=Shift_JIS になり、日本語ファイル名が見えた。ダウンロードも可能。'AddDefaultCharset Shift_JIS' だと、htmlファイルにアクセスしたときに、http header が強制的にこのcharsetで送信してしまうようで、meta タグにちゃんとcharsetを書いていても無視されてしまい文字化けしてしまった。
ということで教訓。
  • sjisしか返さない古い cifsサーバなんかきらいだ。
  • cifs 、nfsでマウントしている領域をapacheで見せるときは EnableSendfile Off (あんまりやりたくないけど)
  • indexoptions charset はもし、indexを見せるんだったら必須。
  • めんどうでも、さっさと debug モードで詳細ログを見る。
また半日はまってしまった。

コメントする