at_yasu's blog

ロード的なことを

Subversion + Apache2 + FreeBSD6.2

タイトル通りそのまんまです。

インストールは全て Portsでしました。注意としては、devel/subversion をインストールするのではなく、devel/subversion-freebsdをインストールし、option で mod_dav_svnを有効にする事。www/apache22では、mod_davを有効にする必要もあります。authzウンタラカンタラも。


で、設定。

私の所は基本、VirtualHostで切り分けています。ですので注意点は、DocumentRoot=リポジトリでは無いと言う事ぐらいかしら。


svn と webdavの設定をする。

DAV
webdavのシステムタイプを指定するみたい。今回は、「svn」
SVNParentPath
リポジトリのあるディレクトリを指定。SVNListParentPathを参考
SVNListParentPath
onにすると、ParentPath一覧を表示する。つまりリポジトリが複数あると、それらを表示する。
SVNIndexXSLT
svnindex.xslのパスを指定すると、見栄えがかっこ良くなる。ただそれだけ。IE、Safari(v3)、火ギツネではちゃんと表示するはず。
AuthzSVNAccessFile
svnのリポジトリへのアクセス権限を設定できる。


以下設定例。

# $Id: yasui-svn.a-yasui.info.conf,v 1.3 2008/08/05 00:53:02 yasui Exp $
# $Date: 2008/08/05 00:53:02 $

<VirtualHost *:80>
        DocumentRoot /home/www/html/
        ServerName yasui-svn.a-yasui.info
        ServerAdmin yasui@a-yasui.info

        CustomLog /home/yasui/svn-repos/log/access.log combined
        ErrorLog /home/yasui/svn-repos/log/error.log

        <IfDefine SVN>
                <Location /svn/>
                        DAV svn
                        SVNParentPath /home/yasui/svn-repos/repository/html/
                        SVNListParentPath on

                        #Basic
                        AuthType Basic
                        AuthName "Yasui's projects"
                        AuthUserFile /usr/local/etc/apache22/htpasswd
                        AuthzSVNAccessFile /home/yasui/svn-repos/repository/svnaccess
                        SVNIndexXSLT "/svnindex.xsl"

                        #<LimitExcept GET PROPFIND OPTIONS REPORT>
                                Require valid-user
                        #</LimitExcept>
                </Location>
        </IfDefine>

</VirtualHost>

参考


追記:
私のリポジトリ一覧です。ユーザ名「guest」パスワード「」(なし)でログインできます。ただ、見られてマズい所は403になります。諸事情により、ログインできなかったりリポジトリがなかったりサーバに接続できないことがあるかもしれませんが、ご了承願います。

後、いろいろソースコードがありますが、一部を除いてみれる物はBSDv2ライセンスです。一部、諸事情によりGNUライセンスの物がありますのでご注意を。

参考になれば幸い。