6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows で Redmine と Subversion の認証連携をする ついでにLDAP設定も少し

Last updated at Posted at 2015-06-21

前提

セキュリティ的にあんまりうるさくないところ(イントラの中とか)

  • Bitnami Redmine などで Redmine がセットアップされている
  • ApacheはBitnami付属ではなく、2.2を入れ直すのでBitnamiのredmineApacheサービスを停止しておく

入れるもの

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 deniedRequire 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実行用のバッチファイルを作成する

reposman.bat
@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も認証してくれる。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?