はじめに
Windows で Bitnami Redmine Stack を用い,1つの Apache サーバーで複数の Redmine を立ち上げた際のノートを,例と共に以下に記します.
私が調べた限りでは同様のことを行っている例が見当たらず,色々と調べて辿り着いた結果となります.
他に良い方法がありましたら,また,間違いがありましたら,ご指摘いただきたく思います.
目標
- 1つ目のRedmine: http://127.0.0.1/redmine
- 2つ目のRedmine: http://127.0.0.1/redmine02
という構成にします.
(2つ目が作れれば,3つ目以降も同様に作れます.確認済みです.)
環境
- Windows 10 64bit Ver.1809
- Bitnami Redmine Stack 3.4.6-5
- 前提
- Bitnami Redmine Stack が
C:\Bitnami\redmine-3.4.6-5\
にインストールされていることを想定しています. - Bitnami Redmine Stack が1つしかインストールされていない(デフォルトのポートを使用している)ことを想定しています.
- Bitnami Redmine Stack が
手順概要
- Redmine App ディレクトリのコピー
- Apache Conf ファイルの設定
- URL および Cache の設定
- データベースの設定
- Thinサーバーのサービスへの登録
- 動作確認
参考にさせていただいたサイト一覧
- Bitnami Redmine Stack 3.4.6-5 取得方法
- Redmine アプリ複製全般
- Apache Conf ファイルの設定
- Cache の設定
- データベースの設定
- Thinサーバーのサービスへの登録
1. Redmine App ディレクトリのコピー
C:\Bitnami\redmine-3.4.6-5\apps\
下に保存されているredmine
ディレクトリを,名前をredmine02
として,同ディレクトリ下にまるごとコピーします.
copy C:\Bitnami\redmine-3.4.6-5\apps\redmine\ C:\Bitnami\redmine-3.4.6-5\apps\redmine02\
コマンドで書きましたが,エクスプローラー上でコピーしても問題ないです.
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行を追記
Include "C:/Bitnami/redmine-3.4.6-5/apps/redmine02/conf/httpd-prefix.conf"
httpd-app.conf
以下の通り,書き換え
-
/redmine
->/redmine02
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
※ 3003, 3004 は未使用のポート番号である必要があります.
※ 3つ以上のRedmineを立ち上げる場合は適時変更する必要があります.
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
<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 のブログ
# 追記
config.session_store :cookie_store,
:key => '_redmine_session',
:path => config.action_controller.relative_url_root
# 書き換え
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行目を書き換え
# 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」としました.適当に置き換えてください.
※ユーザー名は変更せずに「bitnami」のままにすることも可能です.
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 を稼働させる
コンソールを立ち上げ
C:\Bitnami\redmine-3.4.6-5\use_redmine.bat
を実行
ログイン
mysql -u root -p
※[bitnami redmine stack インストール時に使用したパスワード]を続けて入力
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
を実行してコンソールを立ち上げ,以下の通り入力.
cd apps\redmine02\htdocs
bundle exec rake generate_secret_token
マイグレーション
引き続き,以下の通りマイグレーションを実施
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
※未使用のポート
@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
以下の通り,書き換え
-
redmineThin1
->redmineThin102
-
redmineThin2
->redmineThin202
@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
redmine02をサービスに登録または削除するためのバッチファイルを呼び出すように行を追加する.
具体的には,redmineのバッチファイルを呼び出している行を複製し,\redmine
の部分を\redmine02
に変更する.
変更対象行は2箇所あり,いずれも rem redmine_code_start
~ rem redmine_code_end
の間にあります.
1箇所目(サービス登録)
:: 元々存在
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)
:: ↑の行を複製し,`\redmine`の部分を`\redmine02`に変更する
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箇所目(サービス削除)
:: 元々存在
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)
:: ↑の行を複製し,`\redmine`の部分を`\redmine02`に変更する
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
redmine02のサービスを開始または停止するためのバッチファイルを呼び出すように行を追加する.
具体的には,redmineのバッチファイルを呼び出している行を複製し,\redmine
の部分を\redmine02
に変更する.
変更対象行は2箇所あり,いずれも rem redmine_code_start
~ rem redmine_code_end
の間にあります.
1箇所目(サービス開始)
:: 元々存在
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)
:: ↑の行を複製し,`\redmine`の部分を`\redmine02`に変更する
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箇所目(サービス停止)
:: 元々存在
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)
:: ↑の行を複製し,`\redmine`の部分を`\redmine02`に変更する
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
以下を追記
[Thin_redmine3]
thin_server_port=3003
thin_unique_service_name=redmineThin102
[Thin_redmine4]
thin_server_port=3004
thin_unique_service_name=redmineThin202
5-3. サービスの登録と開始
管理者権限でコマンドプロンプトを実行し,以下のコマンドを実行することで,redmine02サービスを登録します.
C:\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\serviceinstall.bat INSTALL
C:\Bitnami\redmine-3.4.6-5\manager-windows.exe
を開き直すと,redmineThin3
とredmineThin4
が追加されていることを確認できると思います.
6. 動作確認
以上で,設定は完了です.
成功していれば,サーバーを再起動することで,それぞれのアドレスにアクセスできるようになります.