redmineはプロジェクトごとに機能の増減やアクセス権を増やせるものの、諸般の事情で「全く別のドメインで新たにredmineを構築する」必要がありました。

以下の手順でうまくいったので、メモとして残します。

環境

  • Ubunut 20.04 (AWS Lightsailインスタンス上)
  • 既に以下のredmineを立ち上げ済み
    • redmine 4.2
    • ruby 2.7
    • mysql 8.0.31

rubyのバージョンの関係で4.2系をインストールすることにします。また、既に動いている環境なのでapacheやmysqlの初期設定は行っていません。

立ち上げ手順

前提

  1. 新たなドメインを取得しているものとします。
  2. mysqlは同一サーバ上にあり、管理者権限を持っているものとします。
  3. この段階ではhttpsを行わないので、グローバル環境で実施する際は早急にSSL化を行ってください。
  4. また、筆者が使いたいプラグインの関係上、4.2をインストールします。

さっくりとした概要

次の内容を実施します。

  1. 新たなredmine用のデータベースを新規で作る。
  2. 現行とは別のディレクトリ上にredmineのプログラムを展開する。
  3. apacheのバーチャルホスト機能で新規redmineの機能を

注意事項

  • 現行のredmineをredmine.sample.com/redmine
  • 新しいredmineをredmine2.sample.com/redmine2

で稼働させます。

現行稼働している時に新しいものを立ち上げる場合は、現行環境のバックアップを取るなどの施策を行ってください。

以下、管理者権限で行います。

redmine用DB/ユーザ作成

mysql -uroot -p
CREATE DATABASE redmine2 character set utf8mb4;
CREATE USER 'redmine2'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL ON redmine2.* TO 'redmine2'@'localhost';
flush privileges;
exit

redmine取得

ソースダウンロード

mkdir /var/lib/redmine2
chown -R www-data:www-data /var/lib/redmine2
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/4.2-stable /var/lib/redmine2

configファイル編集

cp -pi /var/lib/redmine2/config/database.yml.example /var/lib/redmine2/config/database.yml
vi /var/lib/redmine2/config/database.yml
編集ファイル内容

productionの部分を以下のように変更します。

production:
  adapter: mysql2
  database: redmine2
  host: localhost
  username: redmine2
  password: "パスワード"
  encoding: utf8mb4

redmineインストール

cd /var/lib/redmine2
sudo -u www-data bundle install --without development test --path vendor/bundle
sudo -u www-data bundle exec rake generate_secret_token
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

設定ファイル編集

vi /etc/apache2/sites-available/redmine2.conf
設定ファイル内容
<VirtualHost *:80>
  ServerName redmine2.sample.com

Alias /redmine2 /var/lib/redmine2/public
<Location /redmine2>
PassengerBaseURI /redmine2
PassengerAppRoot /var/lib/redmine2
Require all granted
</Location>

  ErrorLog /var/log/apache2/redmine2.sample.com_error.log
  CustomLog /var/log/apache2/redmine2.sample.com_access.log combined
</VirtualHost>

リダイレクトなどで軽くハマり、この設定に落ち着きました。この後、SSL化の手順を実施します。

設定ファイル有効化

a2ensite redmine2.conf
apache2ctl configtest
# Syntax OKを確認します。
systemctl  reload apache2.service

アクセス確認

http://redmine2.sample.com/redmine2

でログインします。