YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

FreeBSDでWebDAV+Subversionの設定

なんかタイムリーに研究室でもSubversionを立てましょうという気風が出たので、練習とばかりにサーバ管理役となりました。しかも今回はFreeBSD6.2でサーバを立てます。こんな機会でもないと使わないからね。

1. レポジトリ格納用ディレクトリ作成

# su -
# cd /home
# mkdir /svn
# chown www:www ./svn

2. テストレポジトリ作成

# svnadmin create --fs-type fsfs foo
# chmod -R 777 foo  <- どうせ内部だしめんどくさかったんで(苦笑)
(ここで適当にfooにインポート)
$ svn import file:///home/svn/foo

3.一旦Subversionの設定は忘れてWebDAVの設定

# emacs /usr/local/etc/apache2/httpd.conf
モジュールの組み込み
==
LoadModule dav_module libexec/apache2/mod_dav.so  <-コメントを外した
==

普通にWebDAVを使うならこのほかにVirtualHostの設定が必要だけど今回はSubversionのレポジトリを見るので別設定となるため、ここで終了。

4. SubversionとWebDAVで利用するためのモジュールをインストールする。
Subversionはpkg_addで設定してしまったため、再コンパイルが必要。

# cd /usr/ports/devel/subversion
# make clean; make WITH_MOD_DAV_SVN=YES WITH_APACHE2_APR=YES WITHOUT_BDB=YES
(略)
mod_dav_svn module for Apache 2.X enabled.  <- これを待っていた
(略)
しかしここでerror発生。どうやらlibtool15というのを再コンパイルしないといけないらしい。
# cd /usr/ports/devel/libtool15; make deinstall; make reinstall;
改めてSubversionをコンパイル
# make clean; make WITH_MOD_DAV_SVN=YES WITH_APACHE2_APR=YES WITHOUT_BDB=YES
# make install
そしたら再インストールしろとか言われたからやりました。
# make deinstall; make reinstall;

5. Apacheの設定

# cd /usr/local/etc/apache2/Includes
# emacs dav_svn.conf <- このファイルは新規に作成する
==
<Location />
    <IfModule mod_dav.c>
        Dav svn
        SVNParentPath /usr/local/var/svn
    </IfModule>
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Deny from all
    </LimitExcept>
</Location>
==

これでhttp://IP_ADRESS/fooにアクセスすれば/home/svn/fooのレポジトリを参照できる。