LighttpdでWebDAVを動かす

Posted in none by o-taki on the 2010/2/27

はじめに

内容

環境はこんな感じ。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はなんかややこしくなってるらしい。できるかどうかは知らない。
日本語ファイル名が文字化けする人が結構いるみたいだけど、特に設定しなくても文字化けしなかった。ようわからん。

まとめ

以上

Comment

Trackback URL