前提
セキュリティ的にあんまりうるさくないところ(イントラの中とか)
- Bitnami Redmine などで Redmine がセットアップされている
- ApacheはBitnami付属ではなく、2.2を入れ直すのでBitnamiのredmineApacheサービスを停止しておく
入れるもの
- Apache 2.2 http://www.apachelounge.com/download/additional/ ここの32bit版が色々ついてて良い・・・か?
- Strawberry Perl 5.16.3.1 32bitにしておくこと。5.18でもうまくいくかもしれないけど試してない。5.20はなんか駄目だった
- http://redmine.rubyforge.org/svn/trunk/extra/svn/ から Redmine.pm と reposman.rb
Apache 2.2の準備
てきとーにBitnamiのapache2ディレクトリを別名にリネームし、先に落としてきたApache2.2をapache2ディレクトリに置き換える。
httpd.confとかを2.2のディレクトリにコピーして、動かないモジュールを外していく
ついでにmod_svnを入れておく。
LoadModule php5_module "C:/Bitnami/REDMIN~1.0-0/php/php5apache2_4.dll"
は動かないので、LoadModule php5_module "C:/Bitnami/REDMIN~1.0-0/php/php5apache2_2.dll"
に書き換えておく。
Require all denied
やRequire all granted
はApache-2.4の設定方法なので、Order allow,deny
allow from all
に書き直していく
Apache-2.2の設定ファイルを元にBitnamiのRedmineやらを登録していく方が楽かもしれない。
Strawberry Perl の準備(mod_perl)
http://people.apache.org/~stevehay/ から mod_perl-2.0.8-strawberryperl-5.16.3.1-32bit.zip を落としてくる
C:\Strawberryと<Redmine Apacheの場所>にStrawberry, Apache2の中身を置く
httpd の確認
管理者権限でcmd.exeを立ち上げて、Redmine Apache の場所に移動、bin\httpd.exe で実行してエラーが出ないことを確認する
Redmine.pm の準備
C:\Strawberry\perl\site\lib\ApacheにRedmine.pm を置いておく
httpd.conf に以下の設定を追加する
LoadFile "D:/Perl/bin/perl510.dll"
LoadModule perl_module modules/mod_perl.so
PerlLoadModule Apache::Redmine
<Location /svn>
DAV svn
SVNParentPath "C:\Svn"
# SVNListParentPath On
AuthType Basic
AuthName "Subversion repository"
Require valid-user
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=xxxxxx;host=localhost"
RedmineDbUser "xxxxxx"
RedmineDbPass "xxxxxx"
AuthUserFile htpasswd
</Location>
xxxxxの部分はredmineのdatabase.ymlから適当にコピー
htpasswdは無いとなぜか動かないのでダミーで置いておく
なんか、SVNの読み込みは誰でもできるようになってる気がするので、後で会社の設定を確認してこよう・・・
Redmine の設定
管理→リポジトリの
「リポジトリ管理用のWebサービスを有効にする」をチェックし、APIキーをキーの生成で生成する
reposman.rb の設定
まず、reposman.rb実行用のバッチファイルを作成する
@echo off
set REDMINE_HOST=http://localhost/redmine
set SVN_DIR=C:\Svn
set SVN_URL=http://localhost/svn
set KEY=<上で生成したキー>
set OLD_CD=%CD%
cd /D %~dp0
rem 環境変数のセット
call C:\Bitnami\redmine-2.5.0-0\scripts\setenv.bat
ruby reposman.rb --svn-dir %SVN_DIR% --redmine-host %REDMINE_HOST% --key %KEY% --url %SVN_URL% --test
cd %OLD_CD%
まずは--testでテスト実行してみる。成功したら--testを外す
このバッチをタスクスケジューラで数分置きに実行するようにしておく
これでRedmineのプロジェクトと一対一でSVNリポジトリができるようになる
LDAP認証に対応してみる・・・?
cpanからAuthen::Simple::LDAPをインストールしたいが、まずは ppm から Digest-MD5 をインストールする
その後おもむろにcpan install Authen::Simple::LDAPする
これで、RedmineでLDAP認証が設定されていれば、それを使ってSVNも認証してくれる。