Lighttpdでどこでもどきゅめんとるーと

適当なディレクトリでっち上げてHTMLとかJSとかFlashとかごにょごにょやってて「あーfileプロトコルで動かねー」って、動いてるサーバーのドキュメントルートに移動させるのが面倒(><)
ツール入れたり、Perlでサーバー書いても良いんだけど、APIのstubとして簡単なCGIを実行したいときとかもありそうだし、lighttpdもっと使ってあげようと思ってやってみた。POWの話はどっかに(つ´∀`)つ置いといて。



最小限のlighttpd.conf作ってみる。

% cat lighttpd.conf
server.document-root=env.PWD

% lighttpd -f lighttpd.conf -D

あれー?あれー?403 - Forbiddenになっちゃうよ(><)

% cat lighttpd.conf
server.modules=("mod_staticfile")
server.document-root=env.PWD

% lighttpd -f lighttpd.conf -D

見れた(^o^)server.modulesに何でも良いから最低一個指定しないとダメみたい(><)※それぞれの設定解釈の違いはlighttpd -pで見れるYO!


でもhtml取りに行ったらapplication/octet-streamが返って来たよ!Firefoxで見れない!(><)

mimetype.assignがいるのかな?MIME::Types - metacpan.orgを使ってえいやっと!

% perl -MMIME::Types -MData::Dumper -e '$Data::Dumper::Useqq=1;print Dumper do{%m;@m{$_->extensions}=($_->type)x$_->extensions for MIME::Types->new->types;\%m};'

これらを設定ファイルに書き出してlighttpdを起動するようなaliasを作ってみる。

※extensionsに"z"と"Z"があって、lighttpdに「Duplicate array-key: z」って怒られたから、map{lc}しちゃった(><)


ドキュメントルートにしたいディレクトリに移動して

% www

って打てば

server.modules=("mod_staticfile")
server.document-root=env.PWD
mimetype.assign=(
          "sid" => "audio/prs.sid",
          ...
          "hh" => "text/plain"
        )

こんなファイルを作ってlighttpdをフォアグラウンドで起動してくれて、「http://localhost/ファイル名」でアクセスできる(^o^)

こっそり拾ってみる。
port も指定できるといいな
aliasじゃ多分無理(><)functionにするか、shell or perlスクリプトで書くしか