#バージョン
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なり。
ひとまず ホーム画面が表示される ってことができたので、一旦お疲れ様。
記事が長くなってしまったので、『アカウント作成』とかの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を再起動して設定を反映さす!
#蛇足
RedmineのデータベースはMySQLよりPostgreがいいかなーって思います。
公式のドキュメントを読むと、PostgreがRedmineのデファクトスタンダードっぽい印象を受けます。
デファクトスタンダードということはつまり…Postgreなら『最適化されていてサクサク動く』『トラブル解決のノウハウが多い』可能性が高い!
トライアル&エラーを繰り返したから、いろんなファイルがごちゃごちゃできちゃった…(´・ω・`)
Dockerを扱えるようにしたいね。
残課題。
- viの最低限の使い方も記事にしとこう。
- SELinuxとは何をしてくれる奴なのかのもうっちょとちゃんと理解。(有効化 or 無効化 の違い)
- SELinux有効化した上でRedmine使えるようにしよう。
- ただコマンドをコピペするんじゃなくて、一体何の為のものなのかを理解しときましょい。