メモ

  • 使用したバージョン
    • Apache 2.2.0
    • Subversion 1.3.0
  • インストールするディレクトリ
    • Apache
      /usr/local/apache2
    • Subversion
      /usr/local/subversion

Apacheインストール

# cd /usr/local/src
# wget http://example.com/httpd-2.2.0.tar.bz2 ←最寄りを。
# tar jxf httpd-2.2.0.tar.bz2
# cd httpd-2.2.0
# view INSTALL ←とりあえず読んで。
# ./configure --enable-so --enable-dav ←この二つは必須。
# make
# make install
# /usr/local/apache2/bin/apachectl start
    〜 動作確認 〜
# /usr/local/apache2/bin/apachectl stop

Subversionインストール

# cd /usr/local/src
# wget http://subversion.tigris.org/downloads/subversion-1.3.0.tar.bz2
# tar jxf subversion-1.3.0.tar.bz2
# cd subversion-1.3.0
# ./configure \
> --prefix=/usr/local/subversion \
> --with-apr=/usr/local/apache2 \
> --with-apr-util=/usr/local/apache2 \
> --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

Subversionはそのままだと同梱のAPR(0.9.7)を使ってしまうので、Apache 2.2.0に同梱のAPR(1.0)を使わせるため「--with-apr」と「--with-apr-util」を指定する。
指定しなくてもコンパイルもできてApacheもしっかり起動するが、アクセスするときに

Can't set position pointer in file '/var/lib/svn-repos/db/revs/0': Invalid argument

みたいなこと言われてハマる。

インストールが終わると、httpd.confに以下の二行が追加される。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

Apacheの設定(httpd.conf)

下記を追記する。

Include conf/extra/httpd-svn.conf

Apacheの設定(httpd-svn.conf)

下記をhttpd-svn.confとして/usr/local/apache2/conf/extraへ配置する。

リポジトリごとのアクセス制御でいい場合

アクセス制限はコメントアウトしてあるのでお好みで。

<Location "/svn/repos">
  DAV svn
  SVNPath /absolute/path/to/repository

#  AuthType Basic
#  AuthName "Subversion repository"
#  AuthUserFile /my/svn/user/passwd/file
#  Require valid-user

#  <LimitExcept GET PROPFIND OPTIONS REPORT>
#    Require valid-user
#  </LimitExcept>
</Location>

リポジトリの中も細かく制御したいorユーザごとの制御もしたい場合

<Location "/svn/repos">
  DAV svn
  SVNParentPath /absolute/path/to/repository/parent
  AuthzSVNAccessFile /my/svn/authz/file

  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /my/svn/user/passwd/file
  Require valid-user
</Location>
  • /my/svn/authz/file
    # グループ定義
    [groups]
    grp1 = user1, user2
    grp2 = user1, user3
    
    # 全ユーザに全リポジトリ以下の読み込み権限を与え、
    # user0に全リポジトリ以下の読み書き権限を与える。
    [/]
    * = r
    user0 = rw
    
    # grp1に属するユーザにproject1リポジトリ以下の読み書き権限を与える
    [project1:/]
    @grp1 = rw
    
    # grp2に属するユーザにproject2リポジトリのtrunk以下の読み書き権限を与える
    [project2:/trunk]
    @grp2 = rw
  • /my/svn/user/passwd/file
    user0:LPNgtd2.t3Ul.
    user1:d16Uz9q6LXtAQ
    user2:14c9Kl.axmFQw
    user3:ikdOigE3KDetk

Subversion実践入門―達人プログラマに学ぶバージョン管理

Subversion実践入門―達人プログラマに学ぶバージョン管理

オーム社(2005-08) オーム社
  (著)Mike Mason
  (翻訳)でびあんぐる
新品価格:¥ 2,730
ASIN:4274066134

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-05-26 (金) 00:35:49 (1528d)