[CentOS] CentOS8.1を新規インストールしてRedmine4.1環境作成

社内テスト環境をCentOS8.1に更新するため、ついでにプロジェクト管理用にRedmineの環境を作成してみましたので、作業手順をメモメモ。

基本的にはRedmine公式のインストール手順に沿っていますが、2020年2月現在での最新バージョンで構築していますので、若干公式の手順と違う部分があります。

CentOSのインストール

PCを新たに用意したので、CentOSのインストールから始めます。

CentOS8系のインストールに関しては、別の記事でメモしていますので参考にしてください。8.0のインストール記事ですが、8.1でもほとんど変わりはありません。

つい先日、CentOS7.6で環境を構築したばかりのような気がしますが、CentOS8.0がリリースされたので、さっそく使ってみることにしました。 まず事前情...

今回用意したOSは、2020年2月現在で最新版の CentOS 8.1.1911。以下のCentOS公式サイトにて「CentOS Linux DVD ISO」という方からダウンロードしました。

今回、CentOSは「最小限のインストール」で、ソフトウェアの追加は一切行っていない環境から始めます。SELINUXの無効化と、利便性のためにtelnetサーバインストール・設定のみ、行っておきました。

Redmineのインストールについて

Redmineをインストールする前に、必要なパッケージなどのインストールを行います。

Redmine環境を構築するために必要な環境も含めて、自動的にインストールしてくれるAnsibleプレイブックというものもありますので、手間を省きたい方はそちらを利用してみてもいいかもしれません。

上記リンク先の「Clone or download」という緑色のボタンをクリックして、「Download ZIP」をクリックしてダウンロードします。

ダウンロード後の手順は、上記リンク先に書かれていますので、ここでは割愛します。

さて、今回はRedmineを含め、全てのパッケージ類を最新バージョンで構築したいので、Ansibleプレイブックというものを使わずに、ひとつずつ手動でいきますよ!

Redmineのインストール手順

準備インストール

Redmineのインストールを行う前に、リポジトリの追加を行っておきます。以下の記事を参考に、EPELとRemiを追加します。

CentOS8.0では、デフォルトでPHP7.2がインストールされます。 そのままでも今は問題ないのですが、できれば最新のPHP7.3系を使いたいので、アップ...

ついでに、PHP7.3も入れておきました。準備インストールに関しては、Redmineのインストールにはほぼ無関係なので、省略してしまっても問題ありません。

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

Redmineを動かすために必要なパッケージをインストールしていきます。公式では、データベースにPostgreSQLを使用してのインストール手順が掲載されていましたが、ここでは使い慣れたMySQLの8.0を使用します。

まずは開発ツールのインストールから。

# dnf -y groupinstall "Development Tools"
# dnf -y install openssl-devel readline-devel zlib-devel curl-devel libffi-devel

続いて、MySQLをインストールします。

# dnf -y install @mysql:8.0 mysql-devel

Webサーバ(Apache)をインストールします。

# dnf -y install httpd httpd-devel

Rubyのインストール

Rubyのインストールを行いますが、リポジトリからのインストールはバージョン2.5.5だったので、オフィシャルサイトから最新のソースコードをダウンロードし、ビルド、インストールします。

# curl -O https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.0.tar.gz
# tar xvf ruby-2.7.0.tar.gz
# cd ruby-2.7.0
# ./configure --disable-install-doc
# make
# make install

インストール後、バージョンを確認してみます。表示されれば正常にインストールできています。

# ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]

Ruby用のパッケージ管理ツール「bundler」をインストールしておきます。

# gem install bundler

以上でRuby関連のインストールは完了です。

MySQLの設定

MySQLの初期設定や自動起動設定については、以下の記事を参考にしてください。

CentOS8.0では、MariaDBというMySQL派生のDBと、本家MySQLの両方がインストールディスクに収められていますので、自分で選択できるようになり...

Redmine用ユーザーの作成は、以下のように行いました。

mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmineredmine';
mysql> GRANT ALL ON *.* TO 'redmine'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

ユーザーを作成したら、Redmine用のデータベースを作成します。文字コードは明示的に指定しなくてもutf8md4になると思いますが、念のため。

mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
mysql> exit

Redmineのインストール

ようやく、Redmineのインストールです。と言っても、ダウンロードして展開するだけです。

# cd /var/lib
# curl -O https://www.redmine.org/releases/redmine-4.1.0.tar.gz
# tar xvf redmine-4.1.0.tar.gz
# mv redmine-4.1.0 redmine

展開後、設定ファイルを作成します。まずはデータベースに接続するための設定です。

# vi /var/lib/redmine/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmineredmine"
  encoding: utf8mb4

usernameとpasswordは、作成したユーザーに合わせて書き換えてください。また、文字コードにutf8md4以外を指定した場合は、encodingも書き換えが必要です。

次に、Redmineの設定ファイルです。Redmineからメールサーバへ接続するための設定です。

# vi /var/lib/redmine/config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "centos8"

それぞれ、環境に合わせて書き換えてください。

最後に、Redmineの依存パッケージをインストールします。Redmineを展開したディレクトリで実行する必要があります。

# cd /var/lib/redmine
# bundle install --without development test --path vendor/bundle

以上で、Redmineのインストールは完了です。

Redmineの初期設定

Redmineの動作に必要な初期設定を行います。Redmineを展開したディレクトリで実行する必要があります。

最初に、セッションの改ざんを防止するための秘密鍵を作成します。

# bundle exec rake generate_secret_token

database.ymlで指定したデータベースに、Redmineのテーブルを作成します。

# RAILS_ENV=production bundle exec rake db:migrate

Passengerのインストール

RedmineなどのRailsアプリケーションを、Apache上で実行するためのパッケージ「Passenger」をインストールします。

# gem install passenger -v 5.1.12

PassengerをApacheで使用するため、Apache用のモジュールをインストールします。

# passenger-install-apache2-module --auto --languages ruby

Apacheの設定

ApacheでPassengerを使用するための設定を行います。

まず、Apache用設定の内容を確認するため、以下のコマンドを実行します。

# passenger-install-apache2-module --snippet
LoadModule passenger_module /usr/local/lib/ruby/gems/2.7.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.7.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

コマンドを実行して表示された設定情報を、Apacheの設定ファイルに記述します。表示された内容を含め、以下の設定ファイルを作成すればOK。

# vi /etc/httpd/conf.d/redmine.conf

Alias /redmine /var/lib/redmine/public

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

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

LoadModule passenger_module /usr/local/lib/ruby/gems/2.7.0/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so

<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.7.0/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

上記設定では、Redmineをサブディレクトリ「/redmine」で実行するように指定しています。

サーバをRedmine専用にする場合は、AliasとLocationの設定は不要で、代わりにhttpd.confのDocumentRootを以下のように書き換える必要があります。

DocumentRoot "/var/lib/redmine/public"

ここで作成した設定ファイルは、CentOS上のApacheで起動時に自動読み込みされます。

設定ファイルが作成できたら、Apacheを起動します。一緒に、自動起動の有効化も行っておきましょう。

# systemctl enable httpd
# systemctl start httpd

CentOS8系は、そのままではhttpの通信ができないため、80番ポートを開放してあげる必要があります。ファイアウォールに例外登録し、設定を反映させます。

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

ここまで設定できれば、インストール作業は完了です。最後に、Redmineディレクトリのオーナーをapacheに変更しておきましょう。

# chown -R apache:apache /var/lib/redmine

ブラウザからアクセスしてみる

それでは、実際にブラウザからアクセスしてみましょう。接続先は「http://(サーバのIPアドレス)/redmine」です。

Redmine初期画面

どうでしょう。上記のように表示されましたか?もしエラーになってしまうようであれば、画面にエラー内容が表示されますので、それをヒントに原因を探ってみましょう。

さいごに

以上で、CentOS8.1の環境に、Redmine4.1をインストールすることができました。

インストールして使えるようになるまでの敷居が高いように感じますが、ここで紹介した通りに進めて行けば、おそらく行き詰まることはないんじゃないかと思います。

プロジェクト管理やタスク管理に悩んでいる方がいましたら、一度Redmineを試してみてはいかがでしょうか。

初稿:2020年2月29日

この記事をシェア

アカウントをフォロー

コメント

  1. momibun より:

    はじめまして。
    Redmineのプラグイン開発用に環境を作るため、記事を参考にさせてもらい、Redmineをインストールしました。
    なんの問題もなくインストールできました!
    ありがとうございました!

    • ヴェル より:

      はじめまして。
      問題なくインストールできたとのことで、記事にした甲斐がありました。
      こちらこそ、コメントいただきましてありがとうございます。