2010年5月2日日曜日

リポジトリをApacheでさらす設定 - Apache 編

Subversion のリポジトリを Apache でさらすときの設定を書いておく。
概要
  • 参照用は、HTTP 接続で、無制限アクセス。
  • フルアクセス用は、HTTPS 接続必須で、制限アクセス。
  • それぞれの URL は別にして、同一のリポジトリをアクセスする。
  • 一部の URL は、ローカルネット内からのみアクセス可とする。


#
# リポジトリー(参照用)
#
<Location /svn>
  DAV svn
  SVNParentPath "/var/svn"
  AuthzSVNAccessFile /etc/apache2/svn/dav_authz

  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Order Allow,Deny
    Deny from All
  </LimitExcept>
</Location>
<Location /svn/trac_ja>
  Order Deny,Allow
  Deny from all
</Location>
<Location /svn/private>
  Order Deny,Allow
  Deny from all
</Location>


#
# リポジトリー(書き込み用)
#
<Location /svn/dev>
  DAV svn
  SVNParentPath "/var/svn"
  AuthzSVNAccessFile /etc/apache2/svn/dav_authz
  SSLRequireSSL
  AuthType Digest
  # AuthName の値と digest パスワードの realm を合わせる必要がある
  AuthName "Subversion repositories"
  AuthUserFile "/etc/apache2/svn/dav_digestpw"

  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Order Allow,Deny
    Allow from All
    Require valid-user
  </LimitExcept>
</Location>

<Location /svn/dev/trac_ja>
  Order Allow,Deny
  Allow from 192.168.1.0/255.255.255.0 127.0.0.0/255.0.0.0
  Require valid-user
</Location>

<Location /svn/dev/private>
  Order Allow,Deny
  Allow from 192.168.1.0/255.255.255.0 127.0.0.0/255.0.0.0
  Require valid-user
</Location>