メモ。
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。