RedmineをAWS無料枠に10分で構築

Redmineはオープンソースのプロジェクト管理ソフトウェアです。タスク管理、進捗管理、メンバー間の情報共有に利用され、プロジェクトを円滑に進めることができます。ここでは、AWSにおけるRedmineの導入方法について解説していきます。

01: 環境

AMI Amazon Linux AMI 2016.09.0.20161028 x86_64 HVM GP2
タイプ t2.micro
セキュリティグループ HTTP,SSH
ソフトウェア バージョン
データベース MySQL 5.5.54
Webサーバー Apache 2.2.31
Ruby Ruby 2.3.0
Redmine Redmine 3.3.2

02: スワップ領域の作成/有効化

passenger-install-apache2-moduleモジュールをビルドする時にメモリ不足が発生するので、1Gのスワップ領域を作成/有効化する。(スワップ領域の作成/有効化は下記リンク先を参照)

Linuxコマンドについてまとめてみました

03: 必要なパッケージのインストール/設定

bash


# 開発向けのパッケージ(make、gccなど)をまとめてインストール
$ sudo yum groupinstall "Development Tools"

# MySQLのインストール
$ sudo yum install mysql55-server 

# Apatchのインストール
$ sudo yum -y install httpd 

04: MySQLの設定

bash


# 起動
$ sudo /etc/init.d/mysqld start

# 自動起動
$ sudo /etc/init.d/mysqld on

# MySQLへ接続
$ mysql -u root -p

# DBの作成
mysql> CREATE DATABASE redmine default charset="utf8";

# ユーザ作成
mysql> GRANT ALL privileges on redmine. * to redmineuser@localhost IDENTIFIED BY 'password';

05: Rubyのアップデート

bash


# Ruby 2.3.0のインストール
$ sudo yum -y install ruby23 ruby23-devel

# Ruby 2.0.0のアンインストール
$ sudo yum erase ruby20

06: ヘッダーファイルのインストール

bash


# -devel: ヘッダーファイル。各ライブラリを使用するアプリケーション開発に必要なファイル
# OpenSSL: 暗号をサポートするためのツールキット
# Readline: CUIアプリケーションにおいてユーザが入力する際に便利な「行頭・行末移動」「ヒストリ機能」などを提供するライブラリ
# zlib: zlib圧縮/解凍するライブラリ
# curl: FTP、HTTP、Telnetなどのプロトコルを使用して各サーバーからファイルを取得するツール
# libyaml: YAMLファイルを簡単に扱うライブラリ
# libffi: 外部関数インタフェースのうち、マシンに依存する最も低いレイヤを提供するライブラリ
# mysql: MySQL
# httpd: Apatch
$ sudo yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel mysql55-devel.x86_64 httpd-devel

# ImageMagick: CUIベースの画像編集が可能なツール
$ sudo yum -y install ImageMagick ImageMagick-devel ipa-gothic-fonts

07: Bundlerのインストール

bash


# rootユーザへログイン
$ su root

# Bundlerのインストール
# Redmineが使用するGemを一括インストールするためのツール
# --no-rdoc --no-ri: ドキュメントをインストールしないオプション。容量削減。
root> gem install bundler --no-rdoc --no-ri

Bundlerについては下記リンク先を参照する。

RubyGemsコマンドについてまとめてみました

08: Redmineのインストール

bash


root> cd /usr/local/src
root> curl -O https://www.redmine.org/releases/redmine-3.3.2.tar.gz
root> tar xzf redmine-3.3.2.tar.gz
root> mv redmine-3.3.2 /var/lib/redmine

09: Redmineの設定

bash


root> cd /var/lib/redmine/config
root> vi config/database.yml
root> vi config/configuration.yml

database.yml


production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: 'password'
  encoding: utf8

configuration.yml


production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'geisterhacker.com'

  rmagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf
YAMLファイル(.yml) タブ文字が使用できないため、半角空白文字だけ使用すること。タブ文字があるとDBスキーマの作成に失敗する。

10: Gemのインストール

bash


# Gemのインストール
root> bundle install --without development test postgresql sqlite --path vendor/bundle

# 警告が出るが無視
# cookieベースのセッションを利用するために、固有のsession_store.rbファイルを生成
# bundle exec: Gemfileを見て最適なGemを使用するオプション
# Rake: rubyで処理内容を定義できるビルドツール
root> bundle exec rake generate_secret_token

# DBスキーマの作成
root> RAILS_ENV=production bundle exec rake db:migrate

# 所有者、グループを変更
root> chown -R apache:apache /var/lib/redmine/

11: Passengerモジュールをビルド

bash


# Passengerモジュールをインストール
root> gem install passenger --no-ri --no-rdoc

# Passengerモジュールをビルド
root> passenger-install-apache2-module

ビルド出力


# Passengerモジュールのビルド終盤に出力された内容を記録する。
LoadModule passenger_module /usr/local/share/ruby/gems/2.3/gems/passenger-5.1.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/ruby/gems/2.3/gems/passenger-5.1.2
  PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

12: Apacheの設定

bash


# リンク作成
root> cd /var/www/html
root> ln -s /var/lib/redmine/public redmine

# Redmine用の設定ファイル作成
root> cd /etc/httpd/conf.d
root> nano redmine.conf

# 設定ファイルの文法チェック
root> service httpd configtest

# Apatch再起動
root> service httpd restart

redmine.conf


LoadModule passenger_module /usr/local/share/ruby/gems/2.3/gems/passenger-5.1.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/ruby/gems/2.3/gems/passenger-5.1.2
  PassengerDefaultRuby /usr/bin/ruby2.3
</IfModule>

RackBaseURI /redmine
<Directory /var/lib/redmine/public>
  AllowOverride none
  Require all granted
</Directory>

13: Redmineへアクセス/初期設定

Webブラウザから「サーバーのドメイン/redmine」にアクセスする。(上記の場合は「geisterhacker.com/redmine」) ユーザ名、パスワードともに「admin」でログインする。 パスワード変更からadminのパスワードを変更する。 管理画面からのデフォルトデータをロードする。(トラッカーやロールの名称で使用する言語として「Japanese (日本語)」を選択し、「デフォルト設定をロード」ボタンをクリックする。)