LoginSignup
27
36

More than 5 years have passed since last update.

AWSにRedmineを構築

Last updated at Posted at 2016-07-26

AWS(t2.micro)にRedmine3以降を構築する際に、Rubyのバージョン、インストール時のメモリ不足と嵌ったのでメモ。

前提

  • Stable の最新を使う(2016.7.24時点の最新:Redmine3.3)
  • Amazon Linuxでシンプルに構築する
  • 構築済みのAMIは使用しない
  • 同じインスタンスないにデータベースも構築する
Application Version
Redmine 3.3
MySQL 5.6
Apache 2.4
Ruby 2.3

EC2インスタンスの作成

個人利用なので、無料枠で作成する。

  • AMI : Amazon Linux AMI 2016.03.3 (HVM), SSD Volume Type - ami-374db956
  • タイプ : t2.micro
  • セキュリティグループ : HTTP,HTTPS,SSH

インスタンスが作成できたら、SSHでログインし、yum update を実行する。

一時的なSWAP領域を作成する(ここでは1G、デフォルトのSwap領域は0KB)。
passenger-install-apache2-moduleでメモリ不足になる

dd if=/dev/zero of=/tmp/swap.img bs=1M count=1024
chmod 600 /tmp/swap.img
mkswap /tmp/swap.img
swapon /tmp/swap.img
free

DBとHTTPサーバのインストール

開発ツールのインストール

yum groupinstall "Development Tools"

Apache をインストール

yum install httpd24

MySQLのインストール
yumでインストール可能な最新は5.6

yum list available | grep mysql
yum install mysql56-server mysql56-devel

MySQLを起動して、rootパスワードを変更

service mysqld start
chkconfig mysqld on
# mysql -uroot
> update mysql.user set password=password('new-password') where user = 'root';
> flush privileges;
> exit;
# mysql -u root -p

DBの準備

以下の内容でRedmine用のデータベースとユーザを作成する
- DB : redmine_db
- USER : redmineuser
- PASS : password

CREATE DATABASE redmine_db default charset="utf8";
GRANT ALL PRIVILEGES ON redmine_db.* TO redmineuser@localhost IDENTIFIED BY 'password';

Rubyを2.3にする

Ruby2.3をインストールして、デフォルトの2.0は消す。

ruby -v
yum install ruby23 ruby23-devel
yum erase ruby20
ruby -v

rubyとgemのバージョンを確認

# ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux-gnu]
# gem -v
2.5.1

bundlerをインストールする。

gem install bundler --no-rdoc --no-ri

Redmineをインストール

ビルドに必要なパッケージをインストール。(一部はすでにインストール済)

yum install zlib-devel libcurl-devel openssl-devel httpd24-devel apr-devel apr-util-devel mysql56-devel
yum install ImageMagick ImageMagick-devel ipa-gothic-fonts

Redmineのパッケージを展開

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

データベース接続の設定

cd /var/lib/redmine
vi config/database.yml

データベースとユーザ名、パスワードは先程のを設定

database.yml
production:
  adapter: mysql2
  database: redminedb
  host: localhost
  username: redmineuser
  password: 'redminepass'
  encoding: utf8

アプリケーションの設定

vi config/configuration.yml

rmagick_font_path はyumでインストールしたフォントを設定

configuration.yml
production
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'example.com'

  rmagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf

必要なgemをインストール

bundle install --without development test postgresql sqlite --path vendor/bundle

シークレットトークンを生成

bundle exec rake generate_secret_token

以下の警告がでるが、無視

expanded.rb:465: warning: key "inodot" is duplicated and overwritten on line 466

DBスキーマの作成

RAILS_ENV=production bundle exec rake db:migrate

/var/lib/redmineのオーナーをapacheに変更

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

Passengerモジュールをビルド

gem install passenger --no-ri --no-rdoc
passenger-install-apache2-module

コンパイルが終わったら、Apacheのモジュール設定を行う。

vi /etc/httpd/conf.modules.d/01-passenger.conf

コンパイルの終盤に出力された内容を設定する。

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

Apacheの設定

vi /etc/httpd/conf.d/redmine.conf
redmine.conf
RailsBaseURI /redmine
<Directory /var/lib/redmine/public>
  AllowOverride none
  Require all granted
</Directory>
cd /var/www/html
ln -s /var/lib/redmine/public redmine

Apacheの起動

service httpd start
chkconfig httpd on

参考

27
36
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
27
36