LoginSignup
0
0

More than 3 years have passed since last update.

【CentOS8に最新バージョンのRedmineとGitLabを構築する】Redmine構築

Last updated at Posted at 2021-03-28

はじめに

この記事では、Redmine 3.4をCentOS 7.3にインストールする手順 をベースにして、CentOS8上に最新バージョンのRedmineを構築する。

ソフトウェア バージョン
OS CentOS 8.3
Redmine Redmine 4.1.2
WEB Apache 2.4.37
DB PostgreSQL 10.15
Ruby ruby 2.5.5

関連記事

【CentOS8に最新バージョンのRedmineとGitLabを構築する】事前調査
【CentOS8に最新バージョンのRedmineとGitLabを構築する】GitLab構築

1.SELinux無効化

/etc/sysconfig/selinuxを開く。

[doshi@centos8 ~]$ sudo vi /etc/sysconfig/selinux

SELINUX=の値をdisabledに変更する。

/etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

変更後、CentOSを再起動する。

[doshi@centos8 ~]$ sudo reboot

getenforceコマンドを実行してSELinuxが無効Disabledになったことを確認する。

[doshi@centos8 ~]$ getenforce
Disabled

2.firewalldでhttpを許可

デフォルトzoneにhttpを追加する。

[doshi@centos8 ~]$ sudo firewall-cmd --zone=public --add-service=http --permanent
success

追加した設定を反映する。

[doshi@centos8 ~]$ sudo firewall-cmd --reload
success

httpでのアクセスが許可されたことを確認する。

[doshi@centos8 ~]$ sudo firewall-cmd --zone=public --list-services
cockpit dhcpv6-client http ssh

3.必要なパッケージのインストール

EPELとPowerToolsリポジトリの有効化

CentOS8ではEPELとPowerToolsリポジトリを有効化しておく必要がある。

[doshi@centos8 ~]$ sudo dnf install -y epel-release
[doshi@centos8 ~]$ sudo dnf config-manager --set-enabled powertools

開発ツール(Cコンパイラ等)のインストール

[doshi@centos8 ~]$ sudo yum -y groupinstall "Development Tools"

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

Redmine.JP Blogの手順 と異なる点として、CentOS8ではcurl-devellibcurl-develという名称になる。また、libyaml-develはPowerToolsリポジトリからインストールされる。

[doshi@centos8 ~]$ sudo dnf -y install openssl-devel readline-devel zlib-devel libffi-devel libcurl-devel libyaml-devel

PostgreSQLとヘッダファイルのインストール

[doshi@centos8 ~]$ sudo dnf -y install postgresql-server postgresql-devel

Redmine.JP Blogの手順 にはないが、ここでPostgreSQLをインストールした際に作成されるOSユーザpostgresのパスワードを設定しておく。

[doshi@centos8 ~]$ sudo passwd postgres

Apacheとヘッダファイルのインストール

[doshi@centos8 ~]$ sudo dnf -y install httpd httpd-devel

ImageMagickとヘッダファイルのインストール

Redmine.JP Blogの手順 と異なる点として、ImageMagickImageMagick-develはEPELリポジトリからインストールされる。

[doshi@centos8 ~]$ sudo dnf -y install ImageMagick ImageMagick-devel

日本語フォントのインストール

Redmine.JP Blogの手順 と異なる点として、CentOS8ではIPAフォントのパッケージがリポジトリに存在しないため、Web上のrpmをインストールする。

[doshi@centos8 ~]$ sudo dnf install https://pkgs.dyn.su/el8/base/x86_64/ipa-pgothic-fonts-003.03-14.el8.noarch.rpm

IPAのフォントが追加されていることを確認する。

[doshi@centos8 ~]$ ls /usr/share/fonts | grep ipa
ipa-pgothic

4.Rubyのインストール

Redmine.JP Blogの手順 ではソースコードからインストールする手順になっているが、最新のRubyをインストールするメリットが見出せないので、パッケージでインストールする。
後にあるgemパッケージのインストールbundle installの際に、ヘッダーファイルが見つからずエラーになるのを避けるため、ruby-develもインストールする。

[doshi@centos8 ~]$ sudo dnf -y install ruby ruby-devel

ruby -vを実行してRubyのバージョンを表示させ、インストールできたことを確認する。

[doshi@centos8 ~]$ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]

bundlerのインストール

Ruby用のパッケージ管理ツールであるbundlerをインストールする。Redmineが使用するgemパッケージをインストールするのに使う。bundlerはrootユーザで使うため、ここではsudoで実行する。なお、--no-rdoc --no-riオプションはドキュメントのインストールを省略する。

[doshi@centos8 ~]$ sudo gem install bundler --no-rdoc --no-ri
Fetching: bundler-2.2.15.gem (100%)
Successfully installed bundler-2.2.15

5.PostgreSQLの設定

データベースクラスタの新規作成

[doshi@centos8 ~]$ sudo postgresql-setup initdb

RedmineからPostgreSQLに接続するための設定を追加

/var/lib/pgsql/data/pg_hba.confを開き、"Put your actual configuration here"と書かれている箇所を探して以下のように設定を2行追加する。

/var/lib/pgsql/data/pg_hba.conf
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# 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

PostgreSQLの起動および自動起動の設定

[doshi@centos8 ~]$ sudo systemctl start postgresql.service
[doshi@centos8 ~]$ sudo systemctl enable postgresql.service
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

PostgreSQLのディレクトリに移動

/etc/sudoersを開く。

[doshi@centos8 ~]$ sudo vi /etc/sudoers

postgresユーザを追加する。

/etc/sudoers
postgres        ALL=(ALL)       ALL

postgresユーザに切り替える。

[doshi@centos8 ~]$ su - postgres

/var/lib/pgsqlディレクトリに移動する。

[postgres@centos8 ~]$ cd /var/lib/pgsql

Redmine用ユーザーの作成

[postgres@centos8 ~]$ sudo -u postgres createuser -P redmine

Redmine用データベースの作成

[postgres@centos8 ~]$ sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine

PostgreSQLのディレクトリから元のディレクトリに戻る

exitでpostgresユーザから一般ユーザに戻る。

6.Redmineのインストール

svnコマンドを使ってインストールするため、subversionをインストールする。

[doshi@centos8 ~]$ sudo dnf install subversion

Redmine 4.1の最新ソースコード一式を、デプロイしたい/var/lib/直下のディレクトリredmineにダウンロードする。

[doshi@centos8 ~]$ sudo svn co http://svn.redmine.org/redmine/branches/4.1-stable/ /var/lib/redmine

データベースへの接続設定

Redmineからデータベースへ接続するための設定ファイルを作成する。Redmineのインストールディレクトリ/var/lib/redmineconfig/database.ymlを作成する。

[doshi@centos8 ~]$ sudo vi /var/lib/redmine/config/database.yml
/var/lib/redmine/config/database.yml
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "*******"
  encoding: utf8

設定ファイル config/configuration.yml の作成

Redmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。Redmineのインストールディレクトリ/var/lib/redmineconfig/configuration.ymlを作成する。

[doshi@centos8 ~]$ sudo vi /var/lib/redmine/config/database.yml
/var/lib/redmine/config/database.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "**********@gmail.com"
      password: "**********"

production:
  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

Redmineのインストールディレクトリへ移動

rootユーザに切り替える。

[doshi@centos8 ~]$ su -

/var/lib/redmineディレクトリへ移動する。

[root@centos8 ~]# cd /var/lib/redmine

gemパッケージのインストール

[root@centos8 ~]# bundle install --without development test --path vendor/bundle

7.Redmineの初期設定と初期データ登録

Redmine動作に関する初期設定と初期データの登録を行う。Redmineのインストールディレクトリで実行する必要がある。

セッション改ざん防止用秘密鍵の作成

[root@centos8 redmine]# bundle exec rake generate_secret_token

データベースのテーブル作成

[root@centos8 redmine]# RAILS_ENV=production bundle exec rake db:migrate

デフォルトデータの登録

作成したテーブルにデフォルトデータのロードを行う。この操作によりトラッカー、優先度、ステータス、ロール、ワークフローなどの初期値が登録される。

[root@centos8 redmine]# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
Default configuration data loaded.

8.Passengerのインストール

Apache上でRedmineなどのRailsアプリケーションを実行するために使われるPhusion Passengerをインストールする。

[root@centos8 redmine]# gem install passenger -v 5.1.12 --no-rdoc --no-ri

PassengerのApache用モジュールのインストール

Apache用のモジュールのビルドとインストールを行う。完了するまで時間がかかる。

[root@centos8 redmine]# passenger-install-apache2-module --auto --languages ruby

Redmineのディレクトリから元のディレクトリに戻る

exitでrootユーザから一般ユーザに戻る。

9.Apacheの設定

Apache用設定内容の確認

下記コマンドを実行するとApacheに追加すべき設定が表示される。

[doshi@centos8 ~]$ passenger-install-apache2-module --snippet
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/gems/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apacheの設定ファイル作成

/etc/httpd/conf.d/redmine.confを開く。

[doshi@centos8 ~]$ sudo vi /etc/httpd/conf.d/redmine.conf

Apacheの設定ファイルを以下の内容で作成する。

/etc/httpd/conf.d/redmine.conf
# サブディレクトリでRedmineを実行
Alias /redmine /var/lib/redmine/public

<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>

# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

# Passengerの基本設定
# passenger-install-apache2-module --snippet で表示された設定を記述
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/gems/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apacheの起動および自動起動の設定

[doshi@centos8 ~]$ sudo systemctl start httpd.service
[doshi@centos8 ~]$ sudo systemctl enable httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Apache上のPassengerでRedmineを実行するための設定

Redmineを配置したディレクトリ以下のファイルを、Apacheを実行するユーザー・グループ(CentOSの場合はいずれも"apache")で読み書きできるよう、オーナーを変更する。

[doshi@centos8 ~]$ sudo chown -R apache:apache /var/lib/redmine

10.運用

Redmineのログローテーション

production.logのローテート を参考に、logroatedを使ってログローテーションを設定する。

/etc/logrotate.d/redmineを開く。

[doshi@centos8 ~]$ sudo vi /etc/logrotate.d/redmine

/etc/logrotate.d/redmineの設定ファイルを以下の内容で作成する。

/etc/logrotate.d/redmine
/var/lib/redmine/log/*log {
    missingok      # ファイルが存在しなくてもエラーににない
    notifempty     # ファイルが空の場合はローテーションしない
    copytruncate   # ログを別名でコピーした後、元のファイルの内容を空にする
    compress       # 古いログを圧縮して保存する
}

動作確認のため、ローテートする条件を満たしていなくても-fオプションで強制実行する。

[doshi@centos8 ~]$ sudo /usr/sbin/logrotate -f /etc/logrotate.d/redmine

圧縮ファイルが作成され、元ファイルのサイズが0となることを確認する。

[doshi@centos8 ~]$ sudo ls -ltr /var/lib/redmine/log/
合計 12
-rw-r--r-- 1 apache apache   32  3月 20 22:37 delete.me
-rw-r--r-- 1 apache apache 8009  3月 27 17:57 production.log.1.gz
-rw-r--r-- 1 apache apache    0  3月 27 18:08 production.log

Redmineのバックアップとリストア

Redmineのバックアップとリストア を参考に、バックアップを取得する。リストアは、Redmineガイドになぜか記載がないため、公式サイトの Restore を参考にする。

アップグレード

Redmineガイドの アップグレード を参考にする。

ディレクトリ

データの蓄積するディレクトリは以下のとおり。

ディレクトリ 用途
/var/lib/pgsql/data PostgreSQLのデータ一式が配置されるディレクトリ
/var/lib/redmine/files Redmineの添付ファイルがアップロードされるディレクトリ

おわりに

ご指摘・アドバイス等あればご遠慮なくお願いいたします。

参考文献

この記事は以下の情報を参考にした。

0
0
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
0
0