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スクリプトで書くしか