この記事を書いた日は 2014/05/19 です |
自宅のサーバに個人プログラムで使う用のSubversionを導入したときのメモ。
適当なディレクトリ (ここでは `C:\usr\svn` とします) に先程ダウンロードしたSubversionのzipを解凍。
次に、ApacheとSubversionそれぞれのbinディレクトリにPATHを通します。環境変数のPATHに `C:\usr\apache\bin;C:\usr\svn\bin;` を追加。*2
モジュールを読み込ませます。mod_davとmod_dav_fsが必要なのでコメントアウトを解除。
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so
mod_dav_svnとmod_authz_svnを追加。
LoadModule dav_svn_module /usr/svn/modules/mod_dav_svn.so LoadModule authz_svn_module /usr/svn/modules/mod_authz_svn.so
今回はサブドメインで運用するので SUSH-i LOGさんの記事 を参考にVirtualHostディレクティブ内に設定を記述しました。各リポジトリは `[DocumentRoot]/repos/` 配下に置くことにします。
<VirtualHost *:80> ServerName svn.example.com DocumentRoot "D:/www/svn" ErrorLog "logs/error_dav_svn.log" CustomLog "logs/access_dav_svn.log" combined <Location /repos> DAV svn SVNListParentPath on SVNParentPath "D:/www/svn/repos" <LimitExcept GET PROPFIND OPTIONS REPORT> AuthType Digest AuthName "svn" AuthUserFile "D:/www/svn/.htdigest" Require valid-user </LimitExcept> </Location> </VirtualHost>
`DocumentRoot` と `DAV svn`が入っている `Location` のパスを同じにすると、CommitやCheckout時に500エラーが出てしまうようです。
Test Configurationして問題なければApacheを再起動。
テスト用リポジトリを作ります。コマンドラインから以下を実行。
svnadmin create D:/www/svn/repos/test
適当なSVNクライアントで `http://svn.example.com/repos/test` をチェックアウトできればOK。