環境構築からWEBアプリ開発・スマホアプリ開発まで。ときには動画制作やゲームも。

supilog
すぴろぐ

AlmaLinux8でRedmine(4.2.5)サーバー構築

AlmaLinux8でRedmine(4.2.5)サーバー構築

今回は以下の環境でRedmine構築作業を行ったときのメモです。Redmineを自分で構築してみたいなと思う方、一度自由に触ってみたい方など、ご参考になればどうぞ。

環境

  • AWS EC2 m3.medium
  • AlmaLinux8

手順

さっそく構築していきます。今回はrootユーザーで行う作業とredmineユーザーで行う作業に別れるので、各作業の左上にユーザー名を記載しています

基本作業

[root]
# アップデート
dnf -y update

# EPELリポジトリ追加
dnf -y install epel-release

# powertoolsリポジトリを有効化
dnf config-manager --set-enabled powertools

# selinuxをdisabledにする
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config

# ここで再起動しておく
reboot

各種インストール

[root]
# 基本インストール
dnf -y install wget git

# 今回の構築に必要なものをインストール
dnf -y install ruby ruby-devel rpm-build libxml2-devel make openssl-devel automake libtool ImageMagick ImageMagick-devel gcc httpd-devel libcurl-devel gcc-c++ 

apacheインストール

[root]
# インストール
dnf -y install httpd httpd-tools
# 起動・自動起動設定
systemctl start httpd
systemctl enable httpd

redmineユーザーを作成

[root]
# ユーザー作成
useradd -r -m -d /opt/redmine redmine
# グループ追加
usermod -aG redmine apache

データベースをインストールする

[root]
# インストール
dnf -y install mariadb-server mariadb mariadb-devel
# 起動・自動起動設定
systemctl start mariadb
systemctl enable mariadb

# 初期設定
mysql_secure_installation
→まずrootのパスワードをきかれますが、この時点では空なので、Enter

各質問の答え方例(※詳しい方はこの通りに設定しなくても問題なし)
-----
-> Set root password? [Y/n] Y     //Yを選んだあと、新しいrootパスワードをきかれるので、設定する
-> Remove anonymous users? [Y/n] Y
-> Disallow root login remotely? [Y/n] Y
-> Remove test database and access to it? [Y/n] Y
-> Reload privilege tables now? [Y/n] Y
-----

# DB作成
mysql -uroot -p
→先程設定したrootパスワードでログインする。さらに、下記SQLを実行する。

-----
CREATE DATABASE `redmine` DEFAULT CHARACTER SET utf8;
CREATE USER redmine@localhost IDENTIFIED BY 'redmineユーザーの接続パスワード';
grant all privileges on redmine.* to redmine@localhost;
-----

redmineをインストールする

[redmine]
# ダウンロード
wget https://www.redmine.org/releases/redmine-4.2.5.tar.gz -P /tmp
# 解凍して配置
tar xzf /tmp/redmine-4.2.5.tar.gz -C /opt/redmine/ --strip-components 1

# 設定ファイル配置
cd /opt/redmine/
cp config/configuration.yml{.example,}
cp public/dispatch.fcgi{.example,}
cp config/database.yml{.example,}

# database.yml 修正
vi /opt/redmine/config/database.yml
-----
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: [redmineユーザーの接続パスワード]
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4
-----
DB名、接続ユーザー名、redmineユーザーの接続パスワードを記載する

RubyGemsをアップデート

[root]
# アップデート
gem update --system
→途中でエラーが出る

# バージョン確認
ls -la /usr/local/share/gems/gems/
# シムリンク作成(バージョンは任意で変更してください)
ln -s /usr/local/share/gems/gems/rubygems-update-3.3.11/ /usr/share/gems/gems/rubygems-update-3.3.11

# 再度アップデート
gem update --system

Bundlerインストール

[redmine]
# インストール
gem install bundler
bundle config set --local without 'development test'
bundle install --path vendor/bundle
#bundle install

DBをmigrateする

[redmine]
# secret_token生成
bundle exec rake generate_secret_token
# DB migrate
RAILS_ENV=production bundle exec rake db:migrate
# デフォルト設定データの投入
RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data

# 各種パーミッション設定
cd /opt/redmine/
for i in tmp tmp/pdf public/plugin_assets; do [ -d $i ] || mkdir -p $i; done
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 /opt/redmine/

firewalld設定

[root]
# インストール
dnf -y install firewalld
# 起動・自動起動設定
systemctl start firewalld
systemctl enable firewalld

# 3000番PORTの開放
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload

passengerインストール

[redmine]
# インストール
gem install passenger
# apache moduleのインストール
passenger-install-apache2-module
-----
Press Enter to continue, or Ctrl-C to abort. -> Enter
Which languages are you interested in? -> Ruby選択の状態のままEnter
-----
→実行途中でapache設定への追加指示があるので、コピーして以下ファイルに貼り付けて保存する


[root]
vi /etc/httpd/conf.modules.d/00-passenger.conf
記入例
-----
LoadModule passenger_module /opt/redmine/.local/share/gem/ruby/2.5.0/gems/passenger-6.0.13/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /opt/redmine/.local/share/gem/ruby/2.5.0/gems/passenger-6.0.13
     PassengerDefaultRuby /usr/bin/ruby
   </IfModule>
-----
【注意】
環境によってパスが異なることがありますので、出力内容を確認してください。

# 再起動
systemctl restart httpd

PATH追加

[root]
# パス追加
vi /etc/profile.d/passenger.sh
-----
export PATH=${PATH}:/opt/redmine/.local/share/gem/ruby/2.5.0/gems/passenger-6.0.13/bin
-----
【注意】
PassengerRootは、環境によって変わることがあるので、インストール時に出力された、PassengerRootのパスに従ってください。

VHOST設定

PassengerRootServerNameはご自分の環境に合わせて修正してください。

[root]
vi /etc/httpd/conf.d/redmine.conf
-----
Listen 3000
<IfModule mod_passenger.c>
  PassengerRoot /opt/redmine/.gem/ruby/2.5.0/gems/passenger-6.0.13
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>
<VirtualHost *:3000>
    ServerName redmine.supisupi.com
    DocumentRoot /opt/redmine/public

    CustomLog logs/redmine_access.log combined
    ErrorLog logs/redmine_error_log
    LogLevel warn

    <Directory "/opt/redmine/public">
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>
</VirtualHost>
-----

【注意】
「redmine.supisupi.com」というドメインを使った設定になっているので、ドメインを書き換えてご利用ください。
【注意】
PassengerRootは、環境によって変わることがあるので、インストール時に出力された、PassengerRootのパスに従ってください。

アプリ確認

http://redmine.supisupi.com:3000/にアクセスする

「ログイン」をクリックして、ID「admin」パスワード「admin」で初回ログインを行う。初回ログインでパスワード変更を行っておく。

プロジェクト・チケットを作成してみる

「プロジェクト」→「新しいプロジェクト」を選択し、プロジェクト名を記入し、「作成」ボタンを押下する。

プロジェクトが作成されたので、チケットを作成してみる

「チケット」タブ→「新しいチケット」を選択し、チケット名など必要な情報を入力し、「作成」ボタンを押下する。

チケットが作成できました!

ガントチャートやカレンダーにも無事に表示されてますね。

ついでにチケットのステータス変更も見てみます。

「InProgress」にしたり、進捗を「50%」にしてみたりしましたが、問題なく動作してますね。

ステータス・トラッカーを追加してみる

設定系の更新も問題ないか軽く確認してみます。

「管理」→「チケットのステータス」→「新しいステータス」を選択し、「Backlog」を追加してみる。

問題なく追加できました。

「管理」→「トラッカー」→「新しいトラッカー」を選択し、名称に「リリース」と入力し追加してみる。

こちらも無事に追加できました。日本語も行けましたね。

すべてを確認していませんが、動作確認は以上とします。

まとめ

筆者はタスク管理には、主にJIRAを使っていますが、以前はRedmineを使っていたこともあります。

タスク管理でredmineを使ってみたい方は、がんがん触ってみるのが良いです。最初は少々UIへの慣れが必要かもしれませんが、慣れれば様々なタスク管理が可能です。便利なプラグインなどもありますので、カスタマイズするのもあり!

個人的には、見た目を可愛くカスタマイズするのが好きです。