Edited at

Windows で Bitnami Redmine Stack を用い,1つの Apache サーバーで複数の Redmine を立ち上げる


はじめに

Windows で Bitnami Redmine Stack を用い,1つの Apache サーバーで複数の Redmine を立ち上げた際のノートを,例と共に以下に記します.

私が調べた限りでは同様のことを行っている例が見当たらず,色々と調べて辿り着いた結果となります.

他に良い方法がありましたら,また,間違いがありましたら,ご指摘いただきたく思います.


目標

という構成にします.

(2つ目が作れれば,3つ目以降も同様に作れます.確認済みです.)


環境


手順概要


  1. Redmine App ディレクトリのコピー

  2. Apache Conf ファイルの設定

  3. URL および Cache の設定

  4. データベースの設定

  5. Thinサーバーのサービスへの登録

  6. 動作確認


参考にさせていただいたサイト一覧


1. Redmine App ディレクトリのコピー

C:\Bitnami\redmine-3.4.6-5\apps\下に保存されているredmineディレクトリを,名前をredmine02として,同ディレクトリ下にまるごとコピーします.


cmd

copy C:\Bitnami\redmine-3.4.6-5\apps\redmine\  C:\Bitnami\redmine-3.4.6-5\apps\redmine02\


image.png

コマンドで書きましたが,エクスプローラー上でコピーしても問題ないです.


2. Apache Conf ファイルの設定


変更が必要なファイル

変更が必要なファイルは以下の4つです.


  • C:\Bitnami\redmine-3.4.6-5\apache2\conf\bitnami\


    • bitnami-apps-prefix.conf



  • C:\Bitnami\redmine-3.4.6-5\apps\redmine02\conf\


    • httpd-app.conf

    • httpd-prefix.conf

    • httpd-vhosts.conf




bitnami-apps-prefix.conf

以下の1行を追記


bitnami-apps-prefix.conf

Include "C:/Bitnami/redmine-3.4.6-5/apps/redmine02/conf/httpd-prefix.conf"



httpd-app.conf

以下の通り,書き換え



  • /redmine -> /redmine02


httpd-app.conf

RewriteEngine On

RewriteRule /<none> / [L,R]

<Directory "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs/public">
Options -MultiViews
AllowOverride All
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>

Include "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/banner.conf"
</Directory>



httpd-prefix.conf

以下の通り,書き換え



  • /redmine -> /redmine02


  • balancer://redminecluster -> balancer://redminecluster02


  • 127.0.0.1:3001 -> 127.0.0.1:3003


  • 127.0.0.1:3002 -> 127.0.0.1:3004


httpd-prefix.conf

ProxyPass /redmine02 balancer://redminecluster02

ProxyPassReverse /redmine02 balancer://redminecluster02

<Proxy balancer://redminecluster02>
BalancerMember http://127.0.0.1:3003/redmine02
BalancerMember http://127.0.0.1:3004/redmine02
</Proxy>

Include "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/httpd-app.conf"



httpd-vhosts.conf

以下の通り,書き換え

(怪しい)



  • /redmine -> /redmine02


  • 127.0.0.1:3001 -> 127.0.0.1:3003


  • 127.0.0.1:3002 -> 127.0.0.1:3004


httpd-vhosts.conf

<VirtualHost *:80>

ServerName redmine.example.com
ServerAlias www.redmine.example.com
DocumentRoot "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs/public"
<Directory "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs/public">
Options -MultiViews
allow from all
</Directory>

RewriteEngine On
RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA,L]
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3003
BalancerMember http://127.0.0.1:3004
</Proxy>

Include "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/httpd-app.conf"
</VirtualHost>

<VirtualHost *:443>
ServerName redmine.example.com
ServerAlias www.redmine.example.com
DocumentRoot "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs/public"
SSLEngine on
SSLCertificateFile "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/certs/server.crt"
SSLCertificateKeyFile "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/certs/server.key"
<Directory "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs/public">
Options -MultiViews
allow from all
</Directory>

RewriteEngine On
RewriteRule ^/(.*)$ balancer://redminecluster%{REQUEST_URI} [P,QSA,L]
<Proxy balancer://redminecluster>
BalancerMember http://127.0.0.1:3003
BalancerMember http://127.0.0.1:3004
</Proxy>

Include "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/conf/httpd-app.conf"
</VirtualHost>



3. URL および Cache の設定


変更が必要なファイル


  • C:\Bitnami\redmine-3.4.6-5\apps\redmine\htdocs\config


    • additional_environment.rb



  • C:\Bitnami\redmine-3.4.6-5\apps\redmine02\htdocs\config


    • additional_environment.rb

    • configuration.yml




additional_environment.rb

以下の通り,書き換えと追記を行う



  • /redmine -> /redmine02

追記部分について,元はapplication.rbに記載があるが,

application.rbは通常変更してはならないとのこと.

参考: サブディレクトリ運用の複数の Redmine で別の Redmine にアクセスすると勝手にログアウトするのを防ぐ - suer のブログ


\apps\redmine\htdocs\config\additional_environment.rb

# 追記

config.session_store :cookie_store,
:key => '_redmine_session',
:path => config.action_controller.relative_url_root


\apps\redmine02\htdocs\config\additional_environment.rb

# 書き換え

config.action_controller.relative_url_root = '/redmine02'

# 追記
config.session_store :cookie_store,
:key => '_redmine_session',
:path => config.action_controller.relative_url_root



configuration.yml

93行目を書き換え


configuration.yml

# 93行目

autologin_cookie_path: Redmine::Utils.relative_url_root


4. データベースの設定


4-1. データベース設定ファイルの編集


変更が必要なファイル


  • C:\Bitnami\redmine-3.4.6-5\apps\redmine02\htdocs\config


    • database.yml




database.yml

以下の通り書き換え

※password は「7dd1f5f7ed」となっています.適当に置き換えてください.

※ユーザー名は「bitnami02」としました.適当に置き換えてください.


database.yml

production:

adapter: mysql2
database: bitnami02_redmine02
host: 127.0.0.1
username: bitnami02
password: 7c0e82d67b
encoding: utf8
port: 3306


4-2. データベース作成

※password,ユーザー名はdatabase.ymlで設定したものと同じものを使用する必要があります.


MySQL を稼働させる

image.png


コンソールを立ち上げ

C:\Bitnami\redmine-3.4.6-5\use_redmine.batを実行


ログイン

mysql -u root -p

※[bitnami redmine stack インストール時に使用したパスワード]を続けて入力


use_redmine.bat

C:\Bitnami\redmine-3.4.6-5>mysql -u root -p

Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.42 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.



データベース作成

CREATE DATABASE bitnami02_redmine02 CHARACTER SET utf8;


ユーザー作成

CREATE USER 'bitnami02'@'localhost' IDENTIFIED BY '7dd1f5f7ed';


権限の設定

GRANT ALL PRIVILEGES ON bitnami02_redmine02.* TO 'bitnami02'@'localhost';


終了

quit


4-3. データベース設定反映


セッションストア秘密鍵の生成

C:\Bitnami\redmine-3.4.6-5\use_redmine.batを実行してコンソールを立ち上げ,以下の通り入力.


use_redmine.bat

cd apps\redmine02\htdocs

bundle exec rake generate_secret_token


マイグレーション

引き続き,以下の通りマイグレーションを実施


use_redmine.bat

bundle exec rake db:migrate RAILS_ENV=production



5. Thinサーバーのサービスへの登録


5-1. 設定ファイルの編集-1


変更が必要なファイル


  • C:\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\


    • serviceinstall.bat

    • servicerun.bat




serviceinstall.bat

以下の通り,書き換え



  • /redmine -> /redmine02


  • redmineThin1 -> redmineThin102


  • redmineThin2 -> redmineThin202


  • 3001 -> 3003


  • 3002 -> 3004


\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\serviceinstall.bat

@echo off

rem -- Check if argument is INSTALL or REMOVE

if not ""%1"" == ""INSTALL"" goto remove

"C:\Bitnami\redmine-3.4.6-5/apps/redmine02\scripts\winserv.exe" install "redmineThin102" -start auto "C:\Bitnami\redmine-3.4.6-5\ruby\bin\ruby.exe" "C:\Bitnami\redmine-3.4.6-5/apps/redmine02\htdocs\bin\thin" start -p 3003 -e production -c "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs" -a 127.0.0.1 --prefix /redmine02
net start redmineThin102 >NUL
"C:\Bitnami\redmine-3.4.6-5/apps/redmine02\scripts\winserv.exe" install "redmineThin202" -start auto "C:\Bitnami\redmine-3.4.6-5\ruby\bin\ruby.exe" "C:\Bitnami\redmine-3.4.6-5/apps/redmine02\htdocs\bin\thin" start -p 3004 -e production -c "C:\Bitnami\redmine-3.4.6-5/apps/redmine02/htdocs" -a 127.0.0.1 --prefix /redmine02

net start redmineThin202 >NUL

goto end

:remove
rem -- STOP SERVICE BEFORE REMOVING

net stop redmineThin102 >NUL

"C:\Bitnami\redmine-3.4.6-5/apps/redmine02\scripts\winserv.exe" uninstall "redmineThin102"

net stop redmineThin202 >NUL
"C:\Bitnami\redmine-3.4.6-5/apps/redmine02\scripts\winserv.exe" uninstall "redmineThin202"

:end
exit



servicerun.bat

以下の通り,書き換え



  • /redmine -> /redmine02


  • redmineThin1 -> redmineThin102


  • redmineThin2 -> redmineThin202


\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\servicerun.bat

@echo off

rem START or STOP Apache Service
rem --------------------------------------------------------
rem Check if argument is STOP or START

if not ""%1"" == ""START"" goto stop

net start redmineThin102

net start redmineThin202

goto end
:stop

net stop redmineThin102

net stop redmineThin202

:end
exit



5-2. 設定ファイルの編集-2


変更が必要なファイル


  • C:\Bitnami\redmine-3.4.6-5\


    • serviceinstall.bat

    • servicerun.bat

    • properties.ini




serviceinstall.bat

\redmineの部分を\redmine02に変更して行を複製する.


1箇所目


\Bitnami\redmine-3.4.6-5\serviceinstall.bat

:: 元々存在

if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\serviceinstall.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\serviceinstall.bat INSTALL)

:: ↑の次の行に以下を追記
if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\serviceinstall.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\serviceinstall.bat INSTALL)



2箇所目


\Bitnami\redmine-3.4.6-5\serviceinstall.bat

:: 元々存在

if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\serviceinstall.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\serviceinstall.bat)

:: ↑の次の行に以下を追記
if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\serviceinstall.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\serviceinstall.bat)



servicerun.bat

\redmineの部分を\redmine02に変更して複製する.


1箇所目


\Bitnami\redmine-3.4.6-5\servicerun.bat

:: 元々存在

if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\servicerun.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\servicerun.bat START)

:: ↑の次の行に以下を追記
if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\servicerun.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\servicerun.bat START)



2箇所目


\Bitnami\redmine-3.4.6-5\servicerun.bat

:: 元々存在

if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\servicerun.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine\scripts\servicerun.bat STOP)

:: ↑の次の行に以下を追記
if exist C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\servicerun.bat (start /MIN C:\Bitnami\REDMIN~1.6-5\apps\redmine02\scripts\servicerun.bat STOP)



properties.ini

以下を追記


\Bitnami\redmine-3.4.6-5\properties.ini

[Thin_redmine3]

thin_server_port=3003
thin_unique_service_name=redmineThin102
[Thin_redmine4]
thin_server_port=3004
thin_unique_service_name=redmineThin202


5-3. サービスの開始

※管理者権限が必要


Console

C:\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\serviceinstall.bat INSTALL


C:\Bitnami\redmine-3.4.6-5\manager-windows.exeを開き直すと,redmineThin3redmineThin4が追加されていることを確認できると思います.

image.png


6. 動作確認

以上で,設定は完了です.

成功していれば,サーバーを再起動することで,それぞれのアドレスにアクセスできるようになります.