RHEL8環境へのRedmine v5.0.5の手動インストール手順 (1) - 前提ソフトウェアのインストール

このドキュメントでは、RHEL8環境に手動でRedmineをインストールする手順を記載します。

私が初めてこのブログで書いた記事が、「Windows環境のBitnamiでRedmine/Git連携(統合認証)」でした。 アクセス記録を見ると今でも細々とこの記事を参照して下さっている人がいるようです。

私も最近仕事でBitnami Redmine v3系をバージョンアップしなければいけなくなり、Bitnamiのサイトを見たら、LinuxやWindows環境にインストールするRedmineのオールインワン側のインストーラの配布が終了していて、選択肢は以下の3つだけでした。

  • Cloud
  • Docker
  • Virtual Machine

私の環境はAWSでしたので、「Cloud」「Virtual Machine」は選択肢に入らず、「Docker」は構築は簡単でもその後の運用・メンテがきっと大変そうな気がしました。
(Docker内のOS部分のウィルス対策や脆弱性パッチ適用など。。。)
そこで、悩んだあげく新しいRedmine v5.0.5をRHEL8環境に手動でインストールすることにしました。 しかしこれがなかなか茨の道でした。ネット上では部分的な情報しか書いている人はおらず、最初から最後まで詳細な手順を固めるのが大変でした。 そういうこともあり、今回その手順をしっかり世の中に残しておこうと思い、記事を書こうと思った次第です。

何でもお手軽が好まれる昨今ですが、全部手動でインストールすることでBitnamiでは理解できなかったRedmineの構成を理解できたり、使用されているミドルウェア(例えばApache HTTP Server)だけ個別に脆弱性に対応したパッチを適用できたりと、メリットはそれなりにあろうかと思います。

構築手順を1つの記事で全部書くと非常に長文になってしまいますので、以下の内容で記事を分割して書こうと思います。

■記事一覧

前提

環境

全体のソフトウェア環境構成は以下となります。

  • Redhat Enterprise Linux 8.6
  • Ruby環境
    • rbenv v1.2.0-74
    • Ruby v3.1.4p223
    • Rails v6.1.7.6
  • Apache HTTP Server v2.4.37
  • MariaDB v10.3.35
  • Redmine v5.0.5
  • Subversion v1.10.2
  • Git v2.31.1
  • LDAP
    • Windows Server 2019 Active Directory

コマンド記載時のプロンプトルール

コマンド実行の記載でのプロンプトは以下のルールで記載をしています。

  • $ : 一般ユーザー
  • # : rootユーザー

1. Apache HTTP Serverのインストール

WebサーバーはApache HTTP Serverの他にNginxも使えるようですが、私は知見がないので、Apache HTTP Serverにしました。 RedmineはApache HTTP Serverの前提バージョンは特に記載はありません。 パッチ適用などの運用性を考え、OS標準のパッケージ管理ソフトdnfを使用してインストールをしました。

  • コマンド
$ sudo dnf install httpd

2. MariaDBのインストール

2-1. RedmineバックエンドDBの決定

今回はMariaDBを選択しました。理由は以下の2点です。大した理由ではないのですが、、、

  • 旧バージョンのBitnami Redmine環境からのデータ移行があり、そのDBがMySQLだったので、MySQLまたはその互換DBが都合が良かった。
  • Bitnami Redmineが最近はMariaDBを使用していたから

2-2. MariaDBバージョンの決定

Redmineは、バックエンドDBの前提バージョンが明記されています。

RedmineInstall - Redmine

これを見ると、MariaDBはMySQL v5.7互換が良いと判断できます。

MariaDB versus MySQL - Compatibility - MariaDB Knowledge Base

上記MariaDBの公式ページを確認したところ、MySQL v5.7互換で一番新しいMariaDBはv10.3だと確認できます。 そこで、MariaDB v10.3のなるべく新しいバージョンを入れようと考えました。

2-3. MariaDBのインストール

ここでも手動でインストールするか、OS標準パッケージ管理ツールdnfでインストールするか悩みましたが、 パッチ適用などの運用性を考え、OS標準のパッケージ管理ソフトdnfを使用してインストールをしました。 試しに、以下を実行してインストールされるバージョンを確認すると v10.3.35だったので結果オーライでした。

$sudo dnf install mariadb mariadb-server

2-4. Redmine用のDB準備

2-4-1. 設定ファイル編集

MariaDBをdnfでインストールすると、設定ファイルは以下に格納されています。

  • /etc/my.cnf.d/mariadb-server.cnf

このファイルに、文字コードの設定を追加します。
また、私はRedmine関連のデータを /data配下に纏めたかったので、データを格納するディレクトリの設定も変更しました。

 :
[mysqld]
character-set-server=utf8mb4    ←この行を追記
#datadir=/var/lib/mysql  ← 元の行をコメント化
datadir=/data/mariadb  ← /data配下にデータ格納ディレクトリを設定
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
 :

データ格納ディレクトリを以下コマンドで作成しておきます。

$ sudo mkdir -p /data/mariadb
$ sudo chown musql:mysql /data/mariadb

2-4-2. MariaDB起動

以下のコマンドでMariaDBを起動します。

$ sudo systemctl start mariadb

2-4-3. Redmine用DB、ユーザー作成

Redmine用のDBとユーザーを以下の名前で作成します。

  • DB名:redmine
  • ユーザー名 : redmine

以下コマンドでMariaDBのプロンプトに入ります。

$ sudo mysql

MariaDBのプロンプトで以下のSQLを実行します。

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY '自分のパスワードを設定';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
flush privileges;

DBとユーザーが作成されたかを以下で確認します。

【DBの確認】

$ sudo mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| redmine            |            ←作成されている
+--------------------+

【ユーザー確認】

$ sudo mysql mysql
MariaDB [mysql]> select user,host from user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| root    | 127.0.0.1 |
| root    | ::1       |
| redmine | localhost |
| root    | localhost |
| root    | rhelvup01 |
+---------+-----------+
5 rows in set (0.000 sec)

2-4-4. 事後作業

必要に応じて、mariadb-secure-installation コマンドでrootユーザのパスワード設定,匿名ユーザの削除,test データベースの削除等を行います。

3. Ruby環境のインストール

3-1. Ruby環境の選択

weblabo.oscasierra.net

上記のサイトを確認したところ、Ruby環境の構築は4つの方法があるそうです。

  1. ソースコードをコンパイルしてインストールする方法
  2. yumでインストールする方法
  3. RVM (Ruby Version Manager) を利用する方法
  4. rbenv + ruby-build を利用する方法

将来的にRubyバージョンを複数持てる方が良いと思うと 「3. RVM」「4. rbenv」のどちらかとまず考えました。
さらに調べてみると、「3. RVM」はかなり癖が強く、例えばOSの「cd」コマンドまで書き換えてしまうなどOSの中にまで動作が影響を及ぼすそうでした。そのため、今回は「4. rbenv」を選択しました。

3-2. Ruby,Railsバージョンの決定

RedmineInstall - Redmine

Redmineは、Ruby,Railsの前提バージョンも上記URLにて記載されています。 今回はRedmine v5.0.5をインストールするので、

  • Ruby v3.1
  • Rails v6.1

にしました。

3-3. インストール手順

https://weblabo.oscasierra.net/install-rbenv-rubybuild-to-redhat/

3-3-1. rbenvのインストール

weblabo.oscasierra.net

rbenvの環境構築は上記を参考に実施しました。

3-3-1-1. rbenvのインストール

私はソフトウェアを/opt配下にインストールしていますので、rbenvも/opt配下にインストールしました。 以下作業はrootユーザーで実施しました。

# cd /opt
# git clone https://github.com/sstephenson/rbenv.git

rbenvに関する環境変数の設定を以下コマンドで実施します。 これを実行すると、全ユーザーにrbenvに関する環境変数が設定されるようになります。

# echo 'export RBENV_ROOT="/opt/rbenv"' >> /etc/profile
# echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile
# echo 'eval "$(rbenv init -)"' >> /etc/profile

3-3-1-2. ruby-buildのインストール

以下作業はrootユーザーで実施しました。

# mkdir /opt/rbenv/plugins
# cd /opt/rbenv/plugins
# git clone https://github.com/sstephenson/ruby-build.git

3-3-2. Ruby環境のインストール

weblabo.oscasierra.net

rbenvを用いたRuby環境の構築は、上記URLを参考にしました。

3-3-2-1. 前提ソフトのインストール

$ sudo dnf install gcc make openssl-devel readline-devel

3-3-2-2. Rubyのインストール

インストール可能なRubyバージョンを確認します。

# rbenv install -l
3.0.6
3.1.4     ←これをインストールしたい。
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.1.0
truffleruby+graalvm-23.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

確認した v3.1.4をインストールします。

# rbenv install 3.1.4
To follow progress, use 'tail -f /tmp/ruby-build.20230925142601.22505.log' or pass --verbose
Downloading ruby-3.1.4.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz
Installing ruby-3.1.4...
Installed ruby-3.1.4 to /opt/rbenv/versions/3.1.4


NOTE: to activate this Ruby version as the new default, run: rbenv global 3.1.4

上記を実行すると、以下にv3.1.4のrubyコマンドがインストールされます。

  • /opt/rbenv/versions/3.1.4/bin/ruby

一方、rbenvでPATHが通っているrubyコマンドは以下で上記とは異なります。

  • /opt/rbenv/shims/ruby

このPATHが通っているrubyコマンドで、インストールしたv3.1.4のrubyコマンドをデフォルト使用にするために、以下のコマンドを実行します。

rbenv global 3.1.4

このrbenvのバージョン指定の考え方については以下を参照下さい。

mogulla3.tech

3-3-3. Railsバージョンのインストール

3-3-3-1. インストールできるRailsバージョンの確認

以下コマンドを実行して、インストール可能なRailsバージョンを確認します。

# gem list rails -rea

*** REMOTE GEMS ***

rails (7.0.8, 7.0.7.2, 7.0.7.1, 7.0.7, 7.0.6, 7.0.5.1, 7.0.5, 7.0.4.3, 7.0.4.2, 7.0.4.1, 7.0.4, 7.0.3.1, 7.0.3, 7.0.2.4, 7.0.2.3, 7.0.2.2, 7.0.2.1, 7.0.2, 7.0.1, 7.0.0, 6.1.7.6, 6.1.7.5, 6.1.7.4, 6.1.7.3, 6.1.7.2, 6.1.7.1, 6.1.7, 6.1.6.1, 6.1.6, 6.1.5.1, 6.1.5, 6.1.4.7, 6.1.4.6, 6.1.4.5, 6.1.4.4, 6.1.4.3, 6.1.4.2, 6.1.4.1, 6.1.4, 6.1.3.2, 6.1.3.1, 6.1.3, 6.1.2.1, 6.1.2, 6.1.1, 6.1.0, 6.0.6.1, 6.0.6, 6.0.5.1, 6.0.5, 6.0.4.8, 6.0.4.7, 6.0.4.6, 6.0.4.5, 6.0.4.4, 6.0.4.3, 6.0.4.2, 6.0.4.1, 6.0.4, 6.0.3.7, 6.0.3.6, 6.0.3.5, 6.0.3.4, 6.0.3.3, 6.0.3.2, 6.0.3.1, 6.0.3, 6.0.2.2, 6.0.2.1, 6.0.2, 6.0.1, 6.0.0, 5.2.8.1, 5.2.8, 5.2.7.1, 5.2.7, 5.2.6.3, 5.2.6.2, 5.2.6.1, 5.2.6, 5.2.5, 5.2.4.6, 5.2.4.5, 5.2.4.4, 5.2.4.3, 5.2.4.2, 5.2.4.1, 5.2.4, 5.2.3, 5.2.2.1, 5.2.2, 5.2.1.1, 5.2.1, 5.2.0, 5.1.7, 5.1.6.2, 5.1.6.1, 5.1.6, 5.1.5, 5.1.4, 5.1.3, 5.1.2, 5.1.1, 5.1.0, 5.0.7.2, 5.0.7.1, 5.0.7, 5.0.6, 5.0.5, 5.0.4, 5.0.3, 5.0.2, 5.0.1, 5.0.0.1, 5.0.0, 4.2.11.3, 4.2.11.2, 4.2.11.1, 4.2.11, 4.2.10, 4.2.9, 4.2.8, 4.2.7.1, 4.2.7, 4.2.6, 4.2.5.2, 4.2.5.1, 4.2.5, 4.2.4, 4.2.3, 4.2.2, 4.2.1, 4.2.0, 4.1.16, 4.1.15, 4.1.14.2, 4.1.14.1, 4.1.14, 4.1.13, 4.1.12, 4.1.11, 4.1.10, 4.1.9, 4.1.8, 4.1.7.1, 4.1.7, 4.1.6, 4.1.5, 4.1.4, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.13, 4.0.12, 4.0.11.1, 4.0.11, 4.0.10, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 4.0.2, 4.0.1, 4.0.0, 3.2.22.5, 3.2.22.4, 3.2.22.3, 3.2.22.2, 3.2.22.1, 3.2.22, 3.2.21, 3.2.20, 3.2.19, 3.2.18, 3.2.17, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.12, 3.1.11, 3.1.10, 3.1.9, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.20, 3.0.19, 3.0.18, 3.0.17, 3.0.16, 3.0.15, 3.0.14, 3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)

たくさん表示されますが、インストールしたい v6.1の最新が v6.1.7.6であることを確認できます。

3-3-3-2. Railsのインストール

以下コマンドを実行して、Rails v6.1.7.6をインストールします。

# gem install rails -v 6.1.7.6

後書き

今回はここまでにします。
最後まで読んで頂きありがとうございました。