(config)Ubuntu に Subversion server を構築する
- はじめに
- Apache2 のインストール
- Subversion のインストール
- Subversion の設定
- 参考
Subversion の設定
複数リポジトリ管理用の設定
単一リポジトリではなく複数リポジトリを利用できるように設定する. Apache2 の設定ファイル /etc/apache2/mods-enabled/dav_svn.conf を編集する.
<Location /svn> DAV svn SVNParentPath /home/svn </Location>
リポジトリを作成する
/home/svn 以下に repository という名前のリポジトリを作成してウェブブラウザ経由でアクセスできることを確認する. Ubuntu の apache は www-data という名前で動いているので repository 以下のアクセス権を apache に与える. 最後に apache を再起動する.
$ sudo mkdir /home/svn $ cd /home/svn $ sudo svnadmin repository $ sudo chown -R www-data:www-data $ sudo /etc/init.d/apache2 restart
ここまで済んだらウェブブラウザ経由でアクセスできる. http://localhost/svn/repository/ など公開しているサーバーにアクセスし
repository - Revision 0:/
などと表示されることを確認する.
Digest 認証のアクセス権を設定する
apache の設定
apache の設定ファイル /etc/apache2/mods-enabled/dav_svn.conf を編集する.
<Location /svn> DAV svn SVNParentPath /home/svn AuthType Digest AuthName "Subversion Repository" AuthUserFile /home/svn/.htdigest Require valid-user </Location>
認証ファイルの作成
apache の設定ファイルで指定した AuthUserFile を作成する.
$ sudo htdigest -c "Subversion Repository" [user-name] Adding password for [user-name] in realm Subversion Repository. New password: Re-type new password:
AuthName の "Subversion Repository" と htdigest の引数の passwordfile は一致する必要がある様子.
Digest module の有効化
既定では apache は digest module が利用できないためこのままだと Internal Server Error が返ってくる. apache の digest module を有効にする.
$ sudo ln -s /etc/apache2/mods-available/auth_digest.load /etc/apache2/mods-enabled/auth_digest.load $ sudo /etc/init.d/apache2 restart
これでリポジトリへのアクセス時にユーザ認証を要求するようになる.
コミットのみユーザ認証を要求
不特定多数の読み取りは許可してコミット (リポジトリへの変更操作) のみ認証されたユーザに許可したい場合の設定を行う. apache の設定ファイル /etc/apache2/mods-enabled/dav_svn.conf を編集する.
<LimitExcept GET PROPFIND OPTIONS REPORT> AuthType Digest AuthName "Subversion Repository" AuthUserFile /home/svn/.htdigest Require valid-user </LimitExcept>
のように <LimitExcept /> で例外の操作 (GET, PROPFIND,...) を併記する.
Keyword(s):[subversion]
References: