WindowsでSubversionサーバを構築する

WindowsマシンにSubversion用サーバを立てるには、基本的に下記ページに書かれている通りでよい。。但し、はまりポイントが1点あったのでご紹介。

Apache ベースのサーバ
http://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-serversetup-apache.html
  1. Apache のインストール
    1. 2.2.x の msiインストーラ をダウンロードする
      1. http://httpd.apache.org/download.cgi#apache22
      2. Win32 Binary including OpenSSL 0.9.8m (MSI Installer): httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi
    2. インストール
      1. C:\Program Files\Apache Software Foundation\Apache2.2
      2. localhost
    3. 動作確認
      1. http://localhost/ にアクセス
  2. Subversion のインストール
    1. ApacheSubversion Win32 バイナリの最新版をダウンロード
      1. subversion → Releases → WindowsWindows Apache 2.2.x → Setup-Subversion-1.6.6.msi
      2. http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
    2. インストール
      1. C:\Program Files\Subversion
    3. 設定
      1. C:\Program Files\Subversion\bin\README.txt を見ると書かれいている、、
        1. Windows エクスプローラで、Subversion のインストールディレクトリ (通常 C:\Program Files\Subversion\bin) に移動し、mod_dav_svn.so と mod_authz_svn.so を確認してください。そのファイルを Apache モジュールディレクトリ (通常 C:\Program Files\Apache Software Foundation\Apache2.2\modules ) にコピーしてください。
        2. Subversion インストールディレクトリにある libdb44.dll や intl3_svn.dll を、Apache bin ディレクトリ( C:\Program Files\Apache Software Foundation\Apache2.2\bin )にコピーしてください。
        3. Apache の設定ファイル (通常 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf)を、メモ帳のようなテキストエディタで以下のように編集してください。
          1. 以下の行のコメントをはずし ('#' マークを消し) てください。
            1. #LoadModule dav_fs_module modules/mod_dav_fs.so
            2. #LoadModule dav_module modules/mod_dav.so
          2. また、以下の 2 行を LoadModule セクションの最後に追加してください。
            1. LoadModule dav_svn_module modules/mod_dav_svn.so
            2. LoadModule authz_svn_module modules/mod_authz_svn.so
          3. 以下の行を設定ファイルの最後に追加してください。

  DAV svn
  SVNListParentPath on
  SVNParentPath D:\SVN
  #SVNIndexXSLT "/svnindex.xsl"
  AuthType Basic
  AuthName "Subversion repositories"
  AuthUserFile passwd
  #AuthzSVNAccessFile svnaccessfile
  Require valid-user

    1. リポジトリを作成
      1. ソースコードを格納するSubversionリポジトリを作成
      2. mkdir C:\SVN
      3. svnadmin create c:\svn\project1
      4. set SVN_EDITOR="C:\Program Files\Hidemaru\Hidemaru.exe"
      5. svn mkdir file:///svn/project1/trunk file:///svn/project1/tags file:///svn/project1/branches
    2. パスワードファイルを作成
      1. HTTP基本認証で使用するパスワードファイルを作成
      2. htpasswd -c

しかし、この設定でApacheをStartさせると落ちる。

  1. C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log
    1. Cannot load C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_dav_svn.so

そこで、Apache の設定ファイル (通常 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf)を書き換えた。

  1. 変更前
    1. LoadModule dav_svn_module modules/mod_dav_svn.so
    2. LoadModule authz_svn_module modules/mod_authz_svn.so
  2. 変更後
    1. LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
    2. LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

ところで、今、元に戻すと、変更前の設定でも動作した。。何故だろう?
まぁ、いいか、、