xamppでApacheとSubversionを連携させる
Subversionへのアクセスは、通常「svn://xxx.xx.xxx」というようにsvnプロトコルのポート3690を利用して通信をしますが、今回はApacheと連携させて、80番ポートで利用できるような環境を作りました。
前提として、以下の環境がインストール済みとします。
xampp1.7.4 (Apache2.2.17) |
Subversion1.6.16 |
ライブラリとモジュールの組み込み
まずは、ApacheでSubversionを動かすために、ライブラリとモジュール組み込みます。
Subversionのインストールディレクトリ「…Subversionbin」から、xamppのインストールディレクトリ「…xamppapachebin」へ以下ファイルをコピーします。
intl3_svn.dll libapr-1.dll libapriconv-1.dll libaprutil-1.dll libdb44.dll libeay32.dll libsasl.dll libsvn_client-1.dll libsvn_delta-1.dll libsvn_diff-1.dll libsvn_fs-1.dll libsvn_ra-1.dll libsvn_repos-1.dll libsvn_subr-1.dll libsvn_wc-1.dll
つまりは、「intl3_svn.dll」と「lib*.dll」の全てのファイルです。
また、同様にして「…Subversionbin」から「…xamppapachemodules」へファイルをコピーします。
mod_authz_svn.so mod_dav_svn.so
Apacheの設定を調整
「…xamppapacheconfhttpd.conf」を開き、以下の2行のコメントアウトを外します。
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so
また、上記と同じ箇所に以下の2行を追記します。
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
同じく、httpd.confに以下の記述を追加します。
<Location /repos1> DAV svn SVNPath "C:svnrepos1" AuthzSVNAccessFile "C:svnrepos1confauthzsvn.conf" Require valid-user AuthType Basic AuthName "Subversion repository" AuthUserFile "C:svnrepos1confhtaccess" </Location>
「SVNPath」はリポジトリの場所です。「AuthzSVNAccessFile」がクライアントのアクセス権限を管理し、「AuthUserFile」がユーザ毎にパスワードを管理しています。ここで、「AuthType Basic」とすることで、認証にはBasic認証を用いることを指定しています。
以下は、「authzsvn.conf」の例です。リポジトリ「repos1」に対して、全員が読み込み可能で、user1~user3で構成するグループdevelopersは読み込みと書き込みが可能という設定です。
[groups] developers = user1, user2, user3 [repos1:/] * = r @developers = rw
developersのユーザパスワードは、下記のように予め「htaccess」に用意しておきます。
user1:tUfb49eEZbnmM user2:atnZw9qYoawL6 user3:E39xrPI49kMRc
これらの設定が一通り完了したら、Apacheを再起動します。そうすると、「http://localhost/repos1/」でリポジトリにアクセスできるはずです。
コメントする