FrontPage  Index  Search  Changes  RSS  Login

Hiki from Mundania - (config)Ubuntu に Subversion server を構築する Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

!はじめに

ここでは Ubuntu に subversion をインストールし, apache 上で http によりアクセスする方法を説明する.

!Apache2 のインストール

$ sudo aptitude install apache2

!Subversion のインストール

$ sudo aptitude install subversion subversion-tools libapache2-svn

!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,...) を併記する.

!参考

* http://d.hatena.ne.jp/hakobe932/20060318/1142663876
* http://d.hatena.ne.jp/hakobe932/20060321/1142917317
* http://blog.riywo.com/2008/04/01/054421
* http://blog.riywo.com/2008/04/01/134909
* http://d.hatena.ne.jp/kslash/20071122/1195741209
* http://chiki2-cq.seesaa.net/article/107012509.html