harry’s memorandum

おれおれメモ

瞳孔が開くほど簡単にredmineを構築できる「Bitnami」 (2)

bitnamiネタで幾つか備忘録を残して置くつもりがすっかり忘れていました。
redmineAPIのテスト環境作るときに、複数テスト環境あると便利ですよね。bitnamiを使って1つのサーバーに簡単に複数redmineを作るTIPSを載せておきます。

構成

3つのredmineを1つのサーバーにインストールしてみます。以下はインストール先とポート番号です。最初のredmineがメインになります。

prefix http https mysql subversion
メインredmine /opt/release 80 443 33860 36900
サブredmine /opt/staging 80 443 33861 36901
サブredmine /opt/dev 80 443 33862 36902

インストール方法

メインredmineのインストール(/opt/release)

普通にインストールします。違うのはオプションでapachemysqlなどのポートを指定してインストールします。イントールが終わったらすぐにredmineのサービスを停止します。次のredmineをインストールする際にポートが衝突するからです。

$ ./bitnami-redmine-2.4.3-0-linux-x64-installer.run \
  --prefix /opt/release \
  --apache_server_port 80  \
  --apache_server_ssl_port 443 \
  --mysql_port 33860  \
  --subversion_port 36900 \
   --installer-language en

$ /opt/release/ctlscript.sh stop

こんな感じで次のredmineをインストールする際に、apacheやmysqやsubversionのポートを違うものにしてインストールすれば、1つのサーバーに複数redmineのインストールが可能です。

サブredmineのインストール(/opt/starging)

最初のredmineのインストールが終わったら2つ目をインストールします。

$ ./bitnami-redmine-2.4.3-0-linux-x64-installer.run \
  --prefix /opt/staging \
  --apache_server_port 80  \
  --apache_server_ssl_port 443 \
  --mysql_port 33861 \
  --subversion_port 36901 \
  --installer-language en

$ /opt/staging/ctlscript.sh stop

サブredmineのインストール(/opt/dev)

3つ目をインストールします。

$ ./bitnami-redmine-2.4.3-0-linux-x64-installer.run \
  --prefix /opt/dev \
  --apache_server_port 80 \
  --apache_server_ssl_port 443 \
  --mysql_port 33862 \
  --subversion_port 36902  \
  --installer-language en

$ /opt/dev/ctlscript.sh stop

設定方法

サブredmineapacheを起動しないようにします。

$ ls -l /opt/{staging,dev}/apache2/scripts/ctl.sh
-rwxr-xr-x 1 root root 2475 Feb 15 16:51 /opt/dev/apache2/scripts/ctl.sh
-rwxr-xr-x 1 root root 2491 Feb 15 16:47 /opt/staging/apache2/scripts/ctl.sh
$ mv /opt/dev/apache2/scripts/ctl.sh /opt/dev/apache2/scripts/ctl.sh.backup
$ mv /opt/staging/apache2/scripts/ctl.sh /opt/staging/apache2/scripts/ctl.sh.backup

メインredmineとサブredmineのサブディレクトリ名を変更

http://example/redmine -> http://example/release のようなURLでアクセス出来るようにします。修正は以下のように。

$ vim /opt/release/apps/redmine/conf/httpd-app.conf
<Directory "/opt/release/apps/redmine/htdocs/public">
    PassengerEnabled on
    Options -MultiViews
    AllowOverride All
    <IfVersion < 2.3 >
    Order allow,deny
    Allow from all
    </IfVersion>
    <IfVersion >= 2.3>
    Require all granted
    </IfVersion>
    #SetEnv RAILS_RELATIVE_URL_ROOT "/redmine"
    SetEnv RAILS_RELATIVE_URL_ROOT "/release"
    PassengerAppRoot "/opt/release/apps/redmine/htdocs"
    <IfModule pagespeed_module>
        ModPagespeedDisallow "*"
    </IfModule>
</Directory>

#PassengerPreStart http://127.0.0.1:80/redmine
PassengerPreStart http://127.0.0.1:80/release

面倒なのでsedで編集すると楽です。

$ sed -i -e "s@\"/redmine\"@\"/release\"@g" -e "s@80/redmine@80/release@g" /opt/release/apps/redmine/conf/httpd-app.conf
$ sed -i -e "s@\"/redmine\"@\"/staging\"@g" -e "s@80/redmine@80/staging@g" /opt/staging/apps/redmine/conf/httpd-app.conf
$ sed -i -e "s@\"/redmine\"@\"/dev\"@g"     -e "s@80/redmine@80/dev@g"     /opt/dev/apps/redmine/conf/httpd-app.conf

Aliaseの設定を変更

$ vim /opt/release/apps/redmine/conf/httpd-prefix.conf
#Alias /redmine/ "/opt/release/apps/redmine/htdocs/public/"
#Alias /redmine "/opt/release/apps/redmine/htdocs/public"
Alias /release/ "/opt/release/apps/redmine/htdocs/public/"
Alias /release "/opt/release/apps/redmine/htdocs/public"

Include "/opt/release/apps/redmine/conf/httpd-app.conf"

これも面倒なのでsedで編集すると楽です。

$ ls -l /opt/*/apps/redmine/conf/httpd-prefix.conf
-rw-r--r-- 1 root daemon 161 Feb 15 16:56 /opt/dev/apps/redmine/conf/httpd-prefix.conf
-rw-r--r-- 1 root daemon 173 Feb 15 16:48 /opt/release/apps/redmine/conf/httpd-prefix.conf
-rw-r--r-- 1 root daemon 173 Feb 15 16:52 /opt/staging/apps/redmine/conf/httpd-prefix.conf
$ sed -i -e "s@Alias /redmine@Alias /release@g" /opt/release/apps/redmine/conf/httpd-prefix.conf
$ sed -i -e "s@Alias /redmine@Alias /staging@g" /opt/staging/apps/redmine/conf/httpd-prefix.conf
$ sed -i -e "s@Alias /redmine@Alias /dev@g"     /opt/dev/apps/redmine/conf/httpd-prefix.conf

Includでconfを統合

メインredmineのbitnami-apps-prefix.confでサブredmineのconfをincludeします。

$ vim /opt/release/apache2/conf/bitnami/bitnami-apps-prefix.conf
# Bitnami applications installed in a prefix URL
Include "/opt/release/apps/phpmyadmin/conf/httpd-prefix.conf"
Include "/opt/release/apps/redmine/conf/httpd-prefix.conf"
# add
Include "/opt/staging/apps/redmine/conf/httpd-prefix.conf"
Include "/opt/dev/apps/redmine/conf/httpd-prefix.conf"

redmineを起動

サブredmineから起動します。

$ /opt/staging/ctlscript.sh start
$ /opt/dev/ctlscript.sh start
$ /opt/release/ctlscript.sh start

メインredmineとサブredmineへアクセス

以下へアクセスできれば成功です。