lighttpd でローカルでいろいろやる場合のテンプレート
あけましておめでとうございます (社交辞令) ってことで、lighttpd で適当にローカルにサーバ立てたりする場合のテンプレートをメモ (新年とか関係ないけどそのくらいのもの)。
Python の http.server モジュールとかでも静的なファイルを見せるとかとおまけの CGI くらいの機能ならあるんだけど、なんかいろいろ足りなかったりするので。
コマンドラインでいい感じになるように起動する
デフォルトだとデーモンになってしまってウザい (は?)。
$ lighttpd -D -f path-to-conf.conf
FastCGI
server.port = 8000
server.document-root = "<適当>"
server.modules += ( "mod_fastcgi" )
server.error-handler-404 = "/"
fastcgi.server = (
"/" => (
(
"socket" => "<ソケットへのパス>",
)
)
)
WebDAV
ずっと立てておくわけではないので認証とかはいらないものとする。
server.port = 8000
server.modules += ( "mod_fastcgi", "mod_cgi", "mod_webdav" )
server.document-root = "<見せたいディレクトリ>"
webdav.activate = "enable"
# ro にしたい場合
#webdav.is-readonly = "enable"
これでファイルマネージャとかで dav://localhost:8000
ってやると自分のところにあるファイルが
WebDAV 越しに見えて嬉しい (別に嬉しくない)。
・・・やっぱり認証とかもできたほうが嬉しい気がしてきたのでメモ。以下を追記する。
server.modules += ( "mod_auth", "mod_authn_file" )
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "./users"
auth.require = ( "/" =>
(
"method" => "digest",
"realm" => "WebDAV",
"require" => "valid-user"
)
)
で、認証情報のファイルつごうする。htdigest
コマンドがあるならそれで生成してもいいが、
ないものをわざわざインストールするのは面倒なのでワンライナーで適当にでっちあげる。
$ echo "<user>:WebDAV:$(echo -n '<user>:WebDAV:<password>' | md5sum | cut -d' ' -f1)" >>users
今回 WebDAV と書いた部分は realm と呼ばれる部分で、ここは任意の文字列が使える。
ただし userfile
で使ったものと lighttpd の設定に書いた realm が一致していないと認証に失敗するので注意。
ところで
Emacs の TRAMP、ssh:
とか scp:
とか sudo:
とかだけじゃなくて dav:
もいけるんですね。まあ WebDAV のサーバ立てられるくらいならきっと SSH も使えるので
わざわざ WebDAV 準備する必要ない気がするけど。
どうでもいい
lighttpd の設定ファイルでは '
で囲った部分は文字列として認識されないみたいなのでハマった。