April 27, 2007

Subversion + Apache2 運用

Apache2 で Subversion を利用するためのメモ
参考にしたサイト
メモ/WebDAVでSubversion - SaikyoLine.jp

/etc/apache2/conf.d/subversion.conf を編集

# Test 用リポジトリは anonymous アクセス
<Location /svn/test>
   DAV svn
   SVNParentPath /var/svn/test
</Location>
# hoge リポジトリはユーザ認証でアクセス
<Location /svn/hoge>
   DAV svn
   SVNPath /var/svn/hoge
   AuthzSVNAccessFile /var/svn/hoge/conf/authz
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "hoge Subversion Repository"
      AuthUserFile /var/svn/hoge/conf/htpasswd
      Require valid-user
#    </LimitExcept>
 </Location>

最初上位ディレクトリ(/var/svn)を指定したら認証側のリポジトリへのアクセスが TortoiseSVN でできなくなった(No Such File or Directory)ので、それぞれのリポジトリで指定することにした。

リポジトリ側の設定 /var/svn/hoge/conf/authz を編集する。
今回の条件は hoge リポジトリ内に、ahe と bar プロジェクトというのがあるとする。
このときの hoge リポジトリ内でのディレクトリアクセスを設定する。
今回は以下の権限にしてみた。

  • ユーザはリポジトリ内を Read する権限がある
  • trunk は、限られたユーザのみ Write 権限を与える
  • tag は、leader にのみ Write 権限を与える
[groups]
ahe = neko, nekotank, ahe-leader
bar = tanks, nekotank, bar-leader

[/]
* = r

[repository:/ahe]
@ahe = rw
* = r

[repository:/ahe/tags]
* = r
ahe-leader = rw

[repository:/bar]
@bar = rw
* = r

[repository:/bar/tags]
* = r
bar-leader = rw

次に htpasswd を作成。
初めて作成する場合は

 htpasswd2 -c -m /var/svn/hoge/conf/htpasswd username1

以降のユーザ追加は

 htpasswd2 -c -m /var/svn/hoge/conf/htpasswd username2

#どうも、Apache2 から htpasswd2 とコマンド名が変わったらしい。

各設定が完了したら、Apache を再起動する。

  /etc/init.d/apache2 restart

これで、http://servername/svn/hoge は認証付アクセスになる

Trackback on "Subversion + Apache2 運用"

このエントリーのトラックバックURL: 

"Subversion + Apache2 運用"へのトラックバックはまだありません。

Comment on "Subversion + Apache2 運用"

"Subversion + Apache2 運用"へのコメントはまだありません。