メモ。



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。