LoginSignup
1
1

More than 3 years have passed since last update.

CentOS8にプロジェクト管理ツール『Redmine』をインストール(データベースはPostgreね)

Last updated at Posted at 2020-11-21

バージョン

CentOS Linux release 8.2.2004 (Core)

Redmineって何ぞ?

オープンソースのプロジェクト管理ツール。
プログラム言語『Ruby』の『Ruby on Rails』というフレームワークで動いてるWebアプリケーション。

Redmineの日本版ページに色々書いてあります。
https://redmine.jp/overview/

  • プロジェクト管理ツールを導入するとこんなメリットがあるよ。
  • Redmineの特徴ってこんな感じだよ。

などなど。

本家インストールマニュアル

ここ http://blog.redmine.jp/articles/3_4/install/centos/
この記事では、ただマニュアル通りに進めてくだけなんだけど、マニュアルはCentOS7.3を前提にしています。

もしかしたらバージョン8だけの特殊な設定が必要かもしれない…。
そういう検証もしつつって感じです。

CentOS8に対してCentOS7.3の方法でインストールしようとしたら見事に失敗…(´・ω・`)
最初からやり直すハメに…。
8には8の、7には7のやり方がある。

参考サイトさん

こちらの手順をなぞらせてもらいました。
https://serverbuild.net/2020/03/12/centos8-redmine-howtoinstall/

必要なソフトのインストール

yumからdnfへ移行してるのがCentOS7との違いかなあ…。

dnf -y update
dnf -y groupinstall "Development Tools"
dnf -y install openssl-devel readline-devel zlib-devel curl-devel libffi-devel subversion
dnf -y install postgresql-server postgresql-devel
dnf -y install httpd httpd-devel

Rubyインストール

ダウンロード、解凍、ソースコードからインストール。

cd /opt/
wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.gz
tar zxvf ruby-2.6.5.tar.gz
cd ruby-2.6.5/
./configure --disable-install-doc
make
make install

ruby -v でRubyのバージョン確認したら2.6.5になっていなかった…。
Redmineインストール失敗した時の名残かな?うーん…よく分からん…(´・ω・`)

ということでちょっと寄り道。
rbenv ≒ バージョンを指定してRubyをインストールできるやつ を用意します。

参考サイトさん
https://qiita.com/lenore/items/259556172e62a0ae8e50

まずは、rbenvをインストールするのに必要なツールを用意するんす。

yum -y install git bzip2 gcc gcc-c++ openssl-devel readline-devel zlib-devel
yum -y install epel-release
yum -y install nodejs

Gitでrbenvのコードをclone。

git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv
git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build

/etc/profile.d/rbenv.sh というファイルを新規作成。
中身は下記のように。

export RBENV_ROOT=/usr/local/rbenv
export PATH=${RBENV_ROOT}/bin:$PATH
eval "$(rbenv init --no-rehash -)"

作成したshを実行。

source /etc/profile.d/rbenv.sh

それが終わったら、 visudo コマンドでsudo権限の設定変更をします。

下記行を追記。

Defaults env_keep += "RBENV_ROOT"

下記(Defaults secure_path)を変更。

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims

さて、rbenvがインストールできたか rbenv --version で確認。

rbenvがインストールできたら…バージョン指定してRubyインスコするぞい。下記コマンド。

rbenv install 2.6.5

2.6.5を適用するまでがインストール。下記コマンド。

rbenv global 2.6.5
rbenv rehash

改めて ruby -v でRubyのバージョンが2.6.5になっているか確認!

bundlerインストール

下記コマンドでインストール。

gem install bundler

Postgre初期化

まずは初期化コマンド。

postgresql-setup initdb

そして、 /var/lib/pgsql/data/pg_hba.conf を編集。
confファイル内の configuration parameter, or via the -i or -h command line switches. の下に下記を追記するのじゃ。

host    redmine         redmine         127.0.0.1/32            md5
host    redmine         redmine         ::1/128                 md5

Postgre起動、そして再起動時に自動で立ち上がるように設定。

systemctl start postgresql
systemctl enable postgresql

PostgreにRedmine用のユーザー作成。

-u postgres createuser -P redmine

『ユーザー名=redmineのパスワードは何にする?』って聞かれるから、任意のパスワードを設定。
当たり前だけどパスワード控えておきましょい。(Redmineの設定ファイルに書くから)

PostgreにRedmine用のデータベース作成。

-u postgres createdb -E UTF-8 -O redmine -T template0 redmine

Remineインストール

まずはRedmineのソースコードダウンロード。

cd /opt/
wget https://www.redmine.org/releases/redmine-4.0.6.tar.gz

しかし、証明書が失効していますのエラーになる。
--no-check-certificate のオプション付けて証明書を検証しないってこともできるけど…。
念のために別の方法で圧縮ファイルをダウンロードして/opt/に置いた。

解凍。そして移動。

tar zxvf redmine-4.0.6.tar.gz
mv /opt/redmine-4.0.6 /var/lib/redmine

/var/lib/redmine フォルダーが存在している場合は /var/lib/redmine/redmine-4.0.6 に移動されてしまうから注意ね!後述のデプロイで失敗するよ。
(Redmineインスコ失敗してやり直する時とかそういうことあるよ)

/var/lib/redmine/config/database.yml を新規作成します。
中身は下記のように。

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "Postgreのユーザー名=redmineのパスワード"
  encode: utf8

下記コマンドでデプロイ。

cd /var/lib/redmine
bundle install --without development test rmagick --path vendor/bundle
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
gem install passenger -v 5.1.12 --no-doc
passenger-install-apache2-module --auto --languages ruby

httpd設定

/etc/httpd/conf/httpd.conf の DocumentRootを変更。

DocumentRoot "/var/lib/redmine/public"

…となるように。

そして、下記コマンド。

passenger-install-apache2-module --snippet

んでんでんで、/etc/httpd/conf.d/redmine.conf を新規作成。
内容は下記のように。

<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

LoadModule passenger_module /usr/local/rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/local/rbenv/versions/2.6.5/bin/ruby
</IfModule>

ただし、LoadModule passenger_module… 以下は passenger-install-apache2-module --snippet を実行した時の戻り値にします。

Apacheを再起動。そしてOS再起動時にApacheが自動起動するように設定。

systemctl restart httpd
systemctl enable httpd

ブラウザでCentOSのIPを打って、下図が表示されればOKなり。
image.png
ひとまず ホーム画面が表示される ってことができたので、一旦お疲れ様。
記事が長くなってしまったので、『アカウント作成』とかのRedmine内の初期設定は別記事にしますん。

もし、http通信ができなかったら…その1

ファイアウォールでブロックされている可能性ありんす。
なので、ファイアウォールの許可設定方法を残しておきます。

下記コマンドで有効化。

firewall-cmd --zone=public --add-service=http --permanent

success のレスポンスで安心してはらめぇ!
ファイアウォールを設定をリロードして反映するまでが設定。下記コマンド。

firewall-cmd --reload

success が返ってくれば設定OK。

本当かぁ~?本当にそうかぁ~?
というわけで確認コマンド。

firewall-cmd --zone=public --list-services

レスポンスに http が含まれていればOK。

もし、http通信ができなかったら…その2

SELinuxにブロックされている可能性あり。
なので、SELinux無効化方法を残しておきます。

本当はSELinux有効化の方がいいと思うけど、この記事では とにかく使えるようにする が目的なので無効化。

んでんでんで、まずはSELinuxがいま 有効になってるの? 無効になってるの? を知らないといけない。
下記コマンドを打つのじゃ。

getenforce

Disabled なら無効化されているので、この工程はスルーなのじゃ。

有効化されてたら無効化するのじゃ。下記SELinux設定ファイルをエディタで編集。

/etc/sysconfig/selinux

下図のように SELinux=disabled として保存。そしてCentOSを再起動して設定を反映さす!
image.png

蛇足

RedmineのデータベースはMySQLよりPostgreがいいかなーって思います。
公式のドキュメントを読むと、PostgreがRedmineのデファクトスタンダードっぽい印象を受けます。
デファクトスタンダードということはつまり…Postgreなら『最適化されていてサクサク動く』『トラブル解決のノウハウが多い』可能性が高い!

トライアル&エラーを繰り返したから、いろんなファイルがごちゃごちゃできちゃった…(´・ω・`)
Dockerを扱えるようにしたいね。

残課題。

  • viの最低限の使い方も記事にしとこう。
  • SELinuxとは何をしてくれる奴なのかのもうっちょとちゃんと理解。(有効化 or 無効化 の違い)
  • SELinux有効化した上でRedmine使えるようにしよう。
  • ただコマンドをコピペするんじゃなくて、一体何の為のものなのかを理解しときましょい。

次の記事

インストール直後のRedmineに最低限の初期設定とテストプロジェクト作成をしようジャマイカ

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1