スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

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/」でリポジトリにアクセスできるはずです。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search