Ubuntuでユーザ認証を使ったSubversion(svn)サーバを構築してみる(DAVプロトコル)

Subversionサーバを立てた際のメモ


代表的なプロジェクト管理ツールのTracRedmineがあるけど
どこまでがSubversionの機能かしっかり把握しとかないとNE!


Subversionには直接アクセス,DAV,SVNの3つのプロトコルがあるけど,今回はDAV(DAVでのアクセス制限を加えたユーザ認証は結構遅いらしい)


Apache2がインストールされている前提
SSLしたいならこのあたりを参考にUbuntuでApache2+SSLしてみる - toguniの日記


mod_dav_svnのインストール


apt-get install subversion libapache2-svn


つぎに/etc/apache2/mods-enabled/dav_svn.confを開いて
コメントアウトしてあるところを以下のような感じに


DAV svn

SVNParentPath /var/www/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd

AuthzSVNAccessFile /etc/apache2/dav_svn.authz

Require valid-user


(dav_svn.passwdでユーザ認証を行い,dav_svn.authzでユーザやグループ単位で制限を加える感じ)


2009/09/01追記:
----------------------------------------
/etc/subversion/configの


enable-auto-props = yes
コメントアウトしてあるのをはずす(クライアントの改行コードをサーバで統一)
----------------------------------------


Apache2の再起動とリポジトリのルートディレクトリの作成


/etc/init.d/apache2 restart
mkdir /var/www/svn


リポジトリのルートディレクトリに移動し,リポジトリの作成と所有者変更


svnadmin create --fs-type fsfs orz
chown -R www-data.www-data orz


また/etc/apache2/dav_svn.passwdを作成し,htpasswdでユーザを追加し
/etc/apache2/dav_svn.authzを以下のような感じにする

[/]
* = r

[orz:/]
hoge = rw

(上記の書式で,認証の通ったユーザはリポジトリ内のすべてのプロジェクトをreadでき,ユーザ「hoge」さんは「orz」プロジェクトをwriteもできる)


終り