LighttpdでWebDAVを動かす
はじめに
- なんとなくlighttpdをWebDAVサーバにしてみようと思ったのでやってみた。
- どうやらソースからビルドしないと無理っぽいことがわかったので仕方なくビルドした。
- 一応できた。
内容
環境はこんな感じ。lsb_release -a は覚えとくと結構役に立つ。
$ lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: CentOS Description: CentOS release 5.4 (Final) Release: 5.4 Codename: Final
とりあえずyumで入ってるlighttpdを消す。
# /etc/init.d/lighttpd stop # yum remove lighttpd
なんかlighttpd-fastcgiも依存性の関係で削除されるよって言われるけど、最新のソースだとfastCGIは本体に内蔵されてるっぽいので削除しちゃう。
lighttpdのソースを拾ってくる。インストールした当時は1.4.25が最新だった。2010/2/7に1.4.26出てるね。。。
$ wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz $ tar xvzf lighttpd-1.4.25.tar.gz $ cd lighttpd-1.4.25
普通にmakeするとpropsとlockが動かない。こいつらが有効になってないとMacからうまく繋がらないようなので、configureする時のオプションに書いとく。あと、SSLも。
$ ./configure --with-webdav-props --with-webdav-locks --with-openssl $ make # make install
/etc/lighttpd/lighttpd.confにWebDAV用の設定を追加する。/dav をWebDAVディレクトリにして、Digest認証をかける。SSLにしといた方がベター。Digest認証の設定とか、SSLの設定とかはgoogle先生に聞いてください。
$HTTP["url"] =~ "^/dav($|/)" {
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd.user.htdigest"
auth.require = ( "/dav" =>
(
"method" => "digest",
"realm" => "WebDAV",
"require" => "valid-user"
)
)
webdav.activate = "enable"
webdav.sqlite-db-name = "/var/run/lighttpd/lighttpd.webdav_lock.db"
}
これとは別に、server.modulesのmod_なんちゃらがいっぱい書いてある所に “mod_webdav” を追加しておく。
サーバ起動。
# /etc/init.d/lighttpd start
litmusっていうツールでWebDAVサーバのテストができるらしいので、サーバとは別のマシン(Mac)にMacPortsでインストールして試す。それなりに動いているらしいことを確認した。まあ、特にやらなくてもいいかもしれない。
この設定で、Mac OS X v10.5 LeopardのFinderとWindows XPのネットワークプレースで接続できる事を確認した。Windows Vistaはなんかややこしくなってるらしい。できるかどうかは知らない。
日本語ファイル名が文字化けする人が結構いるみたいだけど、特に設定しなくても文字化けしなかった。ようわからん。
まとめ
- わりとサクっとできました。
- でもlighttpdがyumでアップデートされなくなっちゃったので今後めんどくさそうだなー。
- やっぱApacheの方が(ry
以上
Comment