• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:Apache2(Windows版)でSubversionをネットワークに対応
#navi(../)
#keywords(Subversion Apache2)
#description(Apache HTTP Server を導入して、Subversionをネットワーク越しに利用する方法をメモしています。)
*Apache2(Windows版)でSubversionをネットワークに対応 [#uc9cfee4]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2003-09-25~
更新日:&lastmod;

---
title: Apache2(Windows版)でSubversionをネットワークに対応
keywords: [Subversion, Apache2, Windows]
author: aterai
pubdate: 2003-09-25
description: Apache HTTP Serverを導入して、Subversionをネットワーク越しに利用する方法をメモしています。
---
#contents

*概要 [#dad03f6f]
このページでは、Apache HTTP Server を導入して、Subversionをネットワーク越しに利用する方法をメモしています。うまくいかない場合は、''C:\Program Files\Subversion\W32notes.txt'' なども参考にしてください。
* 概要 [#dad03f6f]
このページでは、`Apache HTTP Server`を導入して、`Subversion`をネットワーク越しに利用する方法をメモしています。

*インストール [#cb753376]
**1.前準備 [#fe0b6bd4]
Apache2とSubversionはあらかじめインストールしておいてください。どちらも設定はデフォルトのままでかまいません。ここでは説明のために、"hoge"というサンプルプロジェクトのリポジトリを、SVNの親パス(SVNParentPath)の下に作っておきます。
* インストール [#cb753376]
** 1.前準備 [#fe0b6bd4]
[http://subversion.apache.org/packages.html Apache Subversion Binary Packages]から、`Windows`向けの`Apache2.2`用のモジュールが入った`Subversion`をインストールしておきます。

SVNの親パスを作成します。
ここでは、`Win32Svn`(`32-bit client, server and bindings, MSI and ZIPs; maintained by David Darj`)をインストールして、"hoge"というサンプルプロジェクトのリポジトリを、`SVN`の親パス(`SVNParentPath`)の下に作っておきます。

`SVN`の親パスを作成します。
 > mkdir c:\svn

"hoge"プロジェクトのリポジトリを作成し、これを初期化します。
 > svnadmin create c:\svn\hoge

"hoge"の下に、"trunk"、"tags"などを作成します。
"hoge"の下に、`trunk`、`tags`などを作成します。
 > svn mkdir file://localhost/c:/svn/hoge/trunk    -m "trunkディレクトリ作成"
 > svn mkdir file://localhost/c:/svn/hoge/tags     -m "tagsディレクトリ作成"
 > svn mkdir file://localhost/c:/svn/hoge/branches -m "branchesディレクトリ作成"

''e:\hogehoge'' 以下に置かれているソースディレクトリなどを、リポジトリにインポートします。
`e:\hogehoge`以下に置かれているソースディレクトリなどを、リポジトリにインポートします。
 > mkdir e:\hogehoge\src
 > svn import -m "hogeのインポート" e:\hogehoge file://localhost/c:/svn/hoge/trunk

**2.httpd.confの編集 [#x4741126]
大抵 ''c:\program files\apache group\apache2\conf\httpd.conf'' にあります。Subversionのインストーラを使って、"Install and configure Subversion modules"オプションをチェックしていれば、以下は自動的に設定されるようです。
http://terai.xrea.jp/data/subversion/additional.png
** 2.httpd.confの編集 [#x4741126]
大抵`c:\program files\apache group\apache2\conf\httpd.conf`にあります。`Subversion`のインストーラを使って、`Install and configure Subversion modules`オプションをチェックしていれば、以下は自動的に設定されるようです。

念のため、以下を検索して確認します(コメントアウトされていれば#を外す)。
#ref(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQr4sBQ63nI/AAAAAAAAArk/SfP5eagQ4xI/s800/additional.png)

念のため、以下を検索して確認します(コメントアウトされていれば`#`を外す)。
#code{{
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
}}

さらに、以下を検索して無ければ追加するします("mod_dav*.so" モジュールより、後にロードされていれば良いようなので、LoadModule群の最後に追加する)。
さらに、以下を検索して無ければ追加します(`mod_dav*.so`モジュールより、後にロードされていれば良いようなので、`LoadModule`群の最後に追加する)。
#code{{
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#modules以下にmod_dav_svn.soが無ければ、コピーするか以下のように指定
#LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
#LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
}}

// #リポジトリごとではなく、ディレクトリごとにアクセス制限したいなら以下も追加
// #ただし SVNParentPath には対応していないので、今回は追加しない
// #SVNParentPath にも、1.0.1以降で対応
// #LoadModule authz_svn_module "C:/Program Files/Subversion/httpd/mod_authz_svn.so"
ここで一度`Apache2`を再起動して、動くかどうか確認しておきます。もし動かない場合は、`C:\Program Files\Subversion\bin\libdb42.dll`を、`C:\Program Files\Apache Group\Apache2\bin`の下にコピーしてみてください。

ここで一度Apace2を再起動して、動くかどうか確認しておきます。もし動かない場合は、''C:\Program Files\Subversion\bin\libdb42.dll'' を、''C:\Program Files\Apache Group\Apache2\bin'' の下にコピーしてみてください。

あとは、ファイルの最後に以下を追加します。
#code{{
<Location /svn>
  DAV svn
  SVNParentPath "c:/svn"
  #以下、認証の設定ですが、ここではコメントアウト
  #AuthType Basic
  #AuthName "Subversion repositories"
  #AuthUserFile "C:/Program Files/Apache Group/Apache2/etc/svnpasswd"
  #<LimitExcept GET PROPFIND OPTIONS REPORT>
  #  Require valid-user
  #</LimitExcept>
</Location>
}}

**3.確認 [#re20f7d9]
Apache2を再起動して、http://localhost/svn/hoge にアクセスできればOKです。
** 3.確認 [#re20f7d9]
`Apache2`を再起動して、http://localhost/svn/hoge にアクセス可能か確認します。
 > cd C:\Program Files\Apache Group\Apache2\bin
 > apache -k uninstall
 > apache -k install

あとは、以下のようにチェックアウトして確認してみてください。
 > mkdir e:\test
 > svn checkout http://localhost/svn/hoge/trunk e:\test

必要ならば、Apacheの設定で認証などの定義をしておくといいでしょう。[[Subversion によるバージョン管理>http://subversion.bluegate.org/doc/index.html]]の[[httpd, Apache HTTP サーバ>http://subversion.bluegate.org/doc/ch06s04.html]]などを参照してください。
必要ならば、`Apache`の設定で認証などの定義をしてください。

*メモ [#q1cb835b]
-''httpd.conf''
* メモ [#q1cb835b]
- `httpd.conf`
 SVNParentPath "c:\svn" #×
 SVNParentPath "c:/svn" #○

*コメント [#rf0a9c49]
* コメント [#rf0a9c49]
#comment
#comment