BLOG

2015年6月24日/ CentOS, Nginx, Redmine

CentOS7+Nginx+UnicornでRedmineをインストールする手順

Webエンジニアの上本です。
最近の通勤中は、キングダムを読むことが日課になっています。
 
というわけで、先日クランチタイマーでプロジェクト管理ツールを導入する事になり、
プロジェクト管理ツールの代表格であるRedmineを導入しました。
 
今回は、CentOS7+Nginxの環境にRedmineを導入した手順をご紹介します。
 

Redmine構築環境

CentOS Linux release 7.1.1503 (Core)
nginx version: nginx/1.9.1
5.5.41-MariaDB MariaDB Server
ruby 2.0.0p598 (2014-11-13) [x86_64-linux]
本記事は、CentOSにNginx/MariaDBをインストールした状態で解説します。

 

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

開発者向けパッケージのインストール

開発向けのパッケージをまとめてインストールしてくれるもの。
gccとかdiffstatとかいろいろ入ります。

root権限で下記コマンドを実行します。

 

Redmineで使用するパッケージのインストール

続いてRedmineで使用するパッケージをインストールします。

root権限で下記コマンドを実行します。

 

rubyのインストール

Redmineはrubyで開発されていますので、rubyをインストールします。

root権限で下記コマンドを実行します。

 

Redmineユーザー作成

Redmine専用ユーザーを作成します。

root権限で下記コマンドを実行します。

 

データベースの設定

MariaDBの文字コード確認

Redmineの文字コードはデフォルトがUTF-8となっています。
MariaDBの文字コードもUTF-8に設定されているか確認します。

 

MariaDBの起動確認

MariaDBが起動している確認します。
起動していない場合は、起動させておきましょう。

MariaDB起動確認

MariaDB起動

 

MariaDBの自動起動設定

OSが起動した時にMariaDBも起動するように設定します。

root権限で下記コマンドを実行します。

 

MariaDBパスワード設定

rootパスワードが設定されていない場合は、rootのパスワードを設定しておきましょう。

MariaDBの初回起動時など、rootパスワードは設定されていません。

 
上記ユーザーのパスワードを設定するには、MariaDBにログイン後に下記コマンドを実行します。

 
コマンド実行後は、下記のようになります。
パスワード欄にはハッシュ化されたパスワードが入りました。

 

redmineデータベースを作成

Redmineで管理するデータベースを作成します。

 

redmineユーザーの作成

先ほど作成したデータベースを扱うユーザーを新規作成します。

無事、Redmineユーザーが作成されました。

 

Redmineのインストール

Redmine本体のダウンロード

Redmineの最新安定バージョンを公式サイトで確認しましょう。
Redmine公式wiki(英語)

2015年6月24日現在、バージョン3.0.3が最新安定バージョンでしたので、
今回はこのバージョンをインストールします。

 

Redmineデータベース設定

データベース設定ファイルのサンプルファイルがあらかじめ用意されているので、
そのファイルをコピーして使用します。

Redmine権限で下記コマンドを実行します。

データベース設定ファイルに先ほど作成したデータベース情報を入力する
※production以外にも、testやdevelopmentがありますが、使用しないので削除しています。

データベースのID・パスワードを記述しているので、
root以外のユーザーで閲覧・書き換えをできないように権限を変更する

 

Redmineメール設定

データベース同様にサンプルファイルがあるので、こちらもコピーして使用します。

Redmine権限で下記コマンドを実行します。

弊社ではGoogleAppsを使用しているので、Gmailサーバの設定を行います。
Gmailを使用する場合、サンプルファイルのユーザー名とパスワードを変更すれば設定完了です。

データベース同様、メールサーバのID・パスワードを記述しているので、
root以外のユーザーで閲覧・書き換えをできないように権限を変更する

 

関連モジュールのインストール

Redmineはrubyの各種モジュールを使用しています。
モジュールのインストールには、bundlerを使用しているのでbundlerをインストールします。

はじめにbundlerがインストールされているか確認します。

 

bundlerのインストール

確認の結果、bundlerがインストールされていなかったのでインストールを行います。

 

Redmineが使用する関連パッケージのインストール

bundlerのインストールが終わったら、
bundleコマンドで関連パッケージをインストールします。

 

その他設定

セッションデータ暗号化

セッションを入れるCookieを暗号化するための鍵を生成します。

 

Redmineデータベースを構築

上記で作成しておいたRedmineデータベースに、テーブルや初期データなどの構築をします。

 

Redmineデータベースの確認

MariaDBにログインして、下記コマンドを実行します。
Redmineデータベースにテーブルが追加されていればOKです。

 

Railsアプリケーションサーバ(Unicorn)の導入

Unicornのインストール

Unicornは、gemで提供されているのでbundlerでインストールします。
RedmineをインストールしたディレクトリにGemfile.localというファイルを作成し
gem “unicorn”と追記します。

その後、bundle updateコマンドを実行し、unicornをインストールします。

 

動作確認

RailsのWEBrickで一時的に3000番ポートを解放し、Unicornが起動しているか確認します。

コマンドラインで下記コマンドを実行しましょう。

起動したらブラウザで【http://サーバIPアドレス:3000】にアクセスし、Redmineが動作しているか確認します。
スクリーンショット 2015-06-23 15.19.42

確認が終了したら、Cntl+CでWEBrickを終了させます。

 

Nginxと連携する

Nginx設定

ブラウザからネームベースでアクセスできるようにします。
/etc/nginx/conf.d配下にredmine.confを作成し、下記のように記載します。

 

Unicornの設定

次にUnicornでRedmineが動作するように、redmine/config配下にunicorn.rbを作成し、
下記コードをコピーします。

 

Redmine起動

Redmineをデーモンプロセスとして起動させます。

 

Nginx再起動

最後にNginxを再起動すると、設定完了です。

 

おわりに

Apache+Passengerの組み合わせで導入経験のあるRedmineでしたが、
Nginx+Unicornの組み合わせは、今回がはじめてだったので多少不安でしたが、
問題なく導入することができました。

これをきっかけにrubyの勉強も始めてみようと思います!

■参考サイト
RedmineをCentOS_7上で動かすーUnicornとNginx編
Nginx + Unicorn で Redmine をインストールする kzy52’s blog

Resent Posts

Category