53703


最近，Redmine を触り始めたばかりの者です．  
Redmine の少人数でのローカル環境での運用を考えております．

Windows で Bitnami Redmine Stack を用い，  
1つの Apache サーバーで複数の Redmine を立ち上げたいと考えておりますが，  
方法がわからなかったため質問させてください．

例として，

  * 1つ目のRedmine: <http://127.0.0.1:80/redmine>
  * 2つ目のRedmine: <http://127.0.0.1:80/redmine02>

という状態にしたいです．  
可能なのでしょうか？

以下を参考にさせていただき一通り行いましたが，  
<http://127.0.0.1:80/redmine02> へアクセスすると，  
元の <http://127.0.0.1:80/redmine> に接続されてしまっているようで，  
理想とする動作ができませんでした．

参考:  
一台のサーバー上でredmineを複数動かしてみる | 壁に向かって….  
<https://blog.fourthgate.jp/?p=1226>

ご教授お願いいたします．


CC BY-SA 4.0
2019-03-18T23:03:24.850
53534
2019-03-25T23:18:27.743
26573
question
redmine bitnami
Windows で Bitnami Redmine Stack を用い，1つの Apache サーバーで複数の Redmine を立ち上げたい


※同様の内容を qiita にも投稿しております．  
<https://qiita.com/SKYS/items/8197ebc19d85954e7688>

※記事内にリンクを8個以上表示できなかったため，参考にさせていただいたサイトは別途投稿いたします．

* * *

# はじめに

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 
    * ダウンロード直リンク: <https://downloads.bitnami.com/files/stacks/redmine/3.4.6-5/bitnami-redmine-3.4.6-5-windows-installer.exe>
  * 前提 
    * Bitnami Redmine Stack が`C:\Bitnami\redmine-3.4.6-5\`にインストールされていることを想定しています．
    * Bitnami Redmine Stack が1つしかインストールされていない（デフォルトのポートを使用している）ことを想定しています．

# 手順概要

  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`として，同ディレクトリ下にまるごとコピーします．

[code]

    copy C:\Bitnami\redmine-3.4.6-5\apps\redmine\  C:\Bitnami\redmine-3.4.6-5\apps\redmine02\
    
[/code]

![image.png](https://qiita-image-
store.s3.amazonaws.com/0/43136/7f94a9d5-a778-9dc4-2ae5-023e9fef98fb.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行を追記

[code]

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

### httpd-app.conf

以下の通り，書き換え

  * `/redmine` -> `/redmine02`

[code]

    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>
    
[/code]

### 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`

[code]

    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"
    
[/code]

### 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`

[code]

    <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>
    
[/code]

# 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
のブログ](https://suer.hatenablog.com/entry/2016/03/08/171746)

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

[code]

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

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

[code]

    # 書き換え
    config.action_controller.relative_url_root = '/redmine02'
    
    # 追記
    config.session_store :cookie_store,
        :key => '_redmine_session',
        :path => config.action_controller.relative_url_root
    
[/code]

### configuration.yml

93行目を書き換え

[code]

    # 93行目
    autologin_cookie_path: Redmine::Utils.relative_url_root
    
[/code]

# 4\. データベースの設定

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

### 変更が必要なファイル

  * C:\Bitnami\redmine-3.4.6-5\apps\redmine02\htdocs\config 
    * database.yml

### database.yml

以下の通り書き換え  
※password は「7dd1f5f7ed」となっています．適当に置き換えてください．  
※ユーザー名は「bitnami02」としました．適当に置き換えてください．

[code]

    production:
      adapter: mysql2
      database: bitnami02_redmine02
      host: 127.0.0.1
      username: bitnami02
      password: 7c0e82d67b
      encoding: utf8
      port: 3306
    
[/code]

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

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

### MySQL を稼働させる

![image.png](https://qiita-image-
store.s3.amazonaws.com/0/43136/8c804ec6-bbc4-5c97-b525-a5ffaa9cbca8.png)

### コンソールを立ち上げ

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

### ログイン

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

[code]

    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.
    
[/code]

### データベース作成

`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`を実行してコンソールを立ち上げ，以下の通り入力．

[code]

    cd apps\redmine02\htdocs
    bundle exec rake generate_secret_token
    
[/code]

### マイグレーション

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

[code]

    bundle exec rake db:migrate RAILS_ENV=production
    
[/code]

# 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`

[code]

    @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
    
[/code]

### servicerun.bat

以下の通り，書き換え

  * `/redmine` -> `/redmine02`
  * `redmineThin1` -> `redmineThin102`
  * `redmineThin2` -> `redmineThin202`

[code]

    @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
    
[/code]

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

### 変更が必要なファイル

  * C:\Bitnami\redmine-3.4.6-5\ 
    * serviceinstall.bat
    * servicerun.bat
    * properties.ini

### serviceinstall.bat

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

1箇所目

[code]

    :: 元々存在
    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)
    
[/code]

2箇所目

[code]

    :: 元々存在
    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)
    
[/code]

### servicerun.bat

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

1箇所目

[code]

    :: 元々存在
    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)
    
[/code]

2箇所目

[code]

    :: 元々存在
    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)
    
[/code]

### properties.ini

以下を追記

[code]

    [Thin_redmine3]
    thin_server_port=3003
    thin_unique_service_name=redmineThin102
    [Thin_redmine4]
    thin_server_port=3004
    thin_unique_service_name=redmineThin202
    
[/code]

## 5-3. サービスの開始

※管理者権限が必要

[code]

    C:\Bitnami\redmine-3.4.6-5\apps\redmine02\scripts\serviceinstall.bat INSTALL
    
[/code]

`C:\Bitnami\redmine-3.4.6-5\manager-
windows.exe`を開き直すと，`redmineThin3`と`redmineThin4`が追加されていることを確認できると思います．  
![image.png](https://qiita-image-
store.s3.amazonaws.com/0/43136/3f998f64-8f71-ceec-3f9b-2e7df1363e1e.png)

# 6\. 動作確認

以上で，設定は完了です．

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

  * <http://127.0.0.1/redmine>
  * <http://127.0.0.1/redmine02>


CC BY-SA 4.0
2019-03-24T22:31:16.033
53703
2019-03-25T23:18:27.743
2019-03-25T23:18:27.743
26573
26573
53534
answer