カテゴリー
最近更新したページ
最新コメント
ApacheSSL by stunning seo guys
EMMA by stunning seo guys
EMMA by stunning seo guys
Derby by stunning seo guys
GanttPlugin by stunning seo guys
JavaHL by awesome things!
FrontPage by check it out
ApacheSSL by stunning seo guys
java_subversion by check it out
SubversionInstall by awesome things!

SubversionInstall

Subversionサーバの構築


 Win32環境にhttpサーバ(Apache)を経由してリポジトリにアクセスする際のサーバ構築メモ。久しぶりに1から構築する機会があったので、メモを残すこととしました(昔インストールしたときはいろいろと試行錯誤しながらインストールしたので、ぐちゃぐちゃになっているというのもあるのですが)。次に環境を1から構築する場合に役に立つことを願いつつ・・・そのときは各種アプリケーションのバージョンが変わって、設定方法もがらっと変わっていたりする可能性もありますが(笑)。

 なお、インストール先やデータ格納先フォルダ、リポジトリ名に関しては、必要に応じて変更することとなります。また、httpd.confの設定等は必要最低限のことしか行っていませんので、実際にはそれぞれの環境の目的等に応じて別の場所も修正することになります。

アプリケーションのダウンロード


 以下のアプリケーションのアーカイブをダウンロードします。

Apache


 Subversionのwin32版はApache2.2では動かないとのことなので、2.0系列を取得します。今回は、http://hunter.campbus.com/ より Apache_2.0.59-Openssl_0.9.8d-Win32.zip をダウンロードしました。なお、SSL通信を行わないのであれば、本家のところからダウンロードしてきてインストールしても、基本は同じだと思います。

Subversion


 Subversion本体は、http://subversion.tigris.org/servlets/ProjectDocum... から svn-win32-1.4.3.zip をダウンロード(ちなみに、1.4.2においてはsvn-1.4.2-setup.exe(Windows installer with the basic win32 binaries)があるようですが、1.4.3には該当のファイルがないようです?)。

OpenSSL


 SSL通信を行う際のサーバ証明書の他にクライアント証明書等の作成も行います。http://www.slproweb.com/products/Win32OpenSSL.html より Win32 OpenSSL v0.9.8d をダウンロード。なお、この資料の作成時点(2007/03/11)では、0.9.8eしかダウンロードできない(0.9.8dは以前ダウンロードしたもの)ようですが、証明書の作成だけならおそらく0.9.8eでも問題なく使えると思います。

アプリケーションのインストール


Apache2.0.59


 入手したアーカイブ(zip)を展開し、C:\Apache2フォルダへコピー。

Subversion1.4.3


 入手したアーカイブ(zip)を展開し、C:\Tools\svn-win32-1.4.3フォルダへコピー。
 C:\Tools\svn-win32-1.4.3\binフォルダ内の以下のファイルをC:\Apache2\modulesフォルダへコピー。
mod_authz_svn.so
mod_dav_svn.so
intl3_svn.dll
libdb44.dll
 なお、BerkeleyDBを使用しない場合でもlibdb44.dllのコピーは必要です。soファイル2つはともかく、dllファイルのコピーを忘れがちなので注意?(dllファイルのコピーを忘れるとmod_dav_svn.soのロードの際にsyntax errorがでてロードに失敗します)

OpenSSL0.9.8d


 Windowsインストーラ形式なので、何も考えずにexeファイルを実行し、デフォルトの設定のままインストール。

Subversionリポジトリの準備


 C:\svnフォルダを作成し、コマンドプロンプトでC:\svnをカレントフォルダにした状態で
C:\svn>set APR_ICONV_PATH=C:\Tools\svn-win32-1.4.3\iconv
C:\svn>\Tools\svn-win32-1.4.3\bin\svnadmin create Test
を実行して、リポジトリTestを作成します(ファイル形式はfsfs)。APR_ICONV_PATHの指定をしておかないと、メッセージがすごいことになります(C:\Tools\svn-win32-1.4.3\binにパスを通しておくとファイルの実行時はsvnadminの入力だけでOKですが)。

SSL証明書の作成


 CA証明書、サーバ証明書、クライアント証明書を作成します。なお、Subversionクライアント(svn.exeやTortoiseSVN等)を使用する際にクライアント証明書を要求しないようにするのであれば、クライアント証明書の作成は不要です。ApacheでSSL通信を行う等を参考にして、各種証明書を作成します。
 なお、サーバ名はtestsvrとします。

httpd.confの修正


サーバ名等


 サーバ名はtestsvr、ポート番号は8080を使用するとします(従って、hostsファイルにてtestsvrの名前解決を行えるようにしておく必要があります)。従って、以下の部分をまず書き換えます(書き換え後の内容)。
Listen 8080
ServerName testsvr:8080

フォルダ


 C:\Apache2にインストールしているので、c:/apacheの部分をc:/apache2に書き換えます。

モジュールのロード


 LoadModuleが大量に並んでいるところから、以下の3行のコメントを外します。
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule ssl_module modules/mod_ssl.so

 Subversion用のモジュールを組み込みます。記述場所としてはLoadModuleの最後あたりが無難。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
DLLのコピーを忘れていると、Apache起動時にこの部分でエラーが発生します。

Subversion用の設定


 とりあえず、Basic認証を要求し、リポジトリのパスのアクセス制限も行うような感じで設定してみます。
<Location /svn>
DAV svn
SVNListParentPath On
SVNParentPath C:/svn/

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile C:/svn/svn.passwd
Require valid-user
AuthzSVNAccessFile C:/svn/svn.access
</Location>

 ※AuthzSVNAccessFileを指定していると、実はSVNListParentPathは無効となるようです(リポジトリリストを表示させようとしても403となってしまう)。

ssl.confの修正


Mutexの無効化


 Win32環境ではSSLMutexは使用できないので、コメント化します。
#SSLMutex default

ポート番号、サーバ名等の設定


 以下の部分を書き換え。

Listen 8443
<VirtualHost _default_:8443>
DocumentRoot "c:/apache2/htdocs"
ServerName testsvr:8443

SSL証明書の設定


 以下の部分を書き換え。

SSLCertificateFile conf/cert/server.crt
SSLCertificateKeyFile conf/cert/server.key

SSLCACertificatePath conf/cert
SSLCACertificateFile conf/cert/cacert.crt

SSLVerifyClient require
SSLVerifyDepth 1

動作確認

 以下の点を確認すれば設定が問題なく行えているかどうかを確認できるかと思います。
  1. http://testsvr:8080/svn/Test でアクセスした場合に、リポジトリの内容が表示される。
  2. https://testsvr:8443/svn/Test でアクセスした場合、クライアント証明書リストダイアログが表示される(WindowsXPの場合。Windows2000+IE6の場合、ダイアログは表示されません)。
    1. 作成したクライアント証明書をインストールしていない場合、リポジトリの内容の表示に失敗する。
    2. 作成したクライアント証明書をインストール後、同様にアクセスするとリポジトリの内容が表示される。

補足


svn.access


 今回使用したアクセス制御ファイルの内容は以下の通り。見ての通り、実際には何も制限がかかっていません(ファイルを読み込ませることを目的としているので)。

[/]
* = rw
2007年03月11日(日) 15:51:15 Modified by syo1976




スマートフォン版で見る