webdavを設定してみた
メモ。
apache22, subversionをインストールする。
subversionはpkgでなくportsからインストールして、オプション選択のところでmod_dav_svnを選ばないとダメ。
/usr/local/etc/apache22/httpd.confに以下の行があるか確認。
subversionをインストールするときに勝手に加えてくれるはず。
LoadModule dav_module libexec/apache22/mod_dav.so LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
同じくhttpd.confで、httpd-dav.confを指定している行のコメントアウトを外す。
# Distributed authoring and versioning (WebDAV) #Include etc/apache22/extra/httpd-dav.conf Include etc/apache22/extra/httpd-dav.conf
以降、/usr/local/etc/apache22/extra/httpd-dav.conf を参照したり編集したりする。
# The User/Group specified in httpd.conf needs to have write permissions # on the directory where the DavLockDB is placed and on any directory where # "Dav On" is specified. DavLockDB "/usr/local/var/DavLock"
まずロックファイルを置くディレクトリの指定があるので、作る。
パーミッションの設定も忘れないこと。
以下、実行例。
$ sudo mkdir /usr/local/var/DavLock $ sudo chown www:www ./DavLock/ $ sudo chmod 750 ./DavLock/ $ ls -la total 8 drwxr-xr-x 4 root wheel 512 12 27 22:08 . drwxr-xr-x 16 root wheel 512 12 26 21:49 .. drwxr-x--- 2 www www 512 12 27 22:08 DavLock
次に実際のDavの場所、Davアクセスするためのパスワードファイルの場所指定。デフォルトが気に入らなければ変える。
変えたらディレクトリは作っておくこと。
以下、httpd-dav.confの変更例。
#Alias /uploads "/usr/local/uploads" Alias /uploads "/usr/local/www/uploads"
#<Directory "/usr/local/uploads"> <Directory "/usr/local/www/uploads"> # You can use the htdigest program to create the password database: # htdigest -c "/usr/local/user.passwd" DAV-upload admin #AuthUserFile "/usr/local/user.passwd" AuthUserFile "/usr/local/www/dav.passwd"
パスワードファイルの作成。
ユーザがharukiya、realmがDAV-uploadの場合の例。初めてパスワードファイルを作るときは-cをつける。
htdigestが使えるよ、と書いてあるので使ってみる。
以下、実行例。
$sudo htdigest -c "/usr/local/www/dav.passwd" DAV-upload harukiya Adding password for harukiya in realm DAV-upload. New password: Re-type new password:
デフォルトだと、誰でもwebdavディレクトリを見られて、書き込みはadminだけOK、ただしパスワード要という設定。
とりあえず下記ではadminを上記でパスワードを設定したharukiyaに変更している。
# Allow universal read-access, but writes are restricted # to the admin user. <LimitExcept GET OPTIONS> #require user admin require user harukiya </LimitExcept>
あとは/etc/rc.confにapache22_enable="YES"という一行を加え、/usr/local/etc/rc.d/apache22 startとやればOK。