LoginSignup
12
15

More than 5 years have passed since last update.

EC2 (Amazon Linux) で Redmine 3.3

Last updated at Posted at 2016-06-20

前提

  • Redmine 3.3 を使いたい
  • Amazon Linux でシンプルに & できるだけ yum を使って済ませたい

Redmine の入った AMI が配布されてますが、Redmine 3.3 で Amazon Linux のは無いようなので (2016-06-19 時点) 、自分で作ります。

ここでは

  • データベースに RDS の MySQL 5.6 を使います。
  • Apache 2.4 + Passenger を使います。
  • Ruby もできるだけ新しく 2.3 を使います。

以下コマンドはすべて root です。

EC2 インスタンス を準備する

Amazon Linux の GP2 な AMI からインスタンスを作ります。
(執筆時点で amzn-ami-hvm-2016.03.2.x86_64-gp2 )

お忘れなく

yum update

t2.nano とかでも Redmine は動きますが、メモリが少ないとコンパイル時にエラーになりますので、場合によっては一時的にスワップを作ります。
例えば

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

Apache HTTP Server と MySQL クライアント入れておきます。
DB 関係の作業を他のところから行うのであれば、MySQL クライアントは入れなくていいです。

yum install httpd24 mysql56

Ruby を 2.3 にする

Ruby 2.3 をインストールします。
デフォルトで入っている 2.0 は消しておきます。

yum install ruby23 ruby23-devel
yum erase ruby20

bundler をインストールします。

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

RDS インスタンスを準備する

RDS のインスタンスを用意しておきます。

接続して、Redmine用のデータベースとユーザーを作ります。

mysql -u your_master_user -p -h your-instance-id.************.ap-northeast-1.rds.amazonaws.com
mysql> CREATE DATABASE redmine_db CHARACTER SET utf8;
mysql> CREATE USER redmine_user@'%' IDENTIFIED BY 'your password';
mysql> GRANT ALL PRIVILEGES ON redmine_db.* TO redmine_user@'%';

utf8mb4 にしようとすると色々改造が必要なので今回はパスします。

Redmine を組み立てる

ビルドに必要なパッケージをそろえます。

yum install make gcc gcc-c++ automake autoconf
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
wget https://www.redmine.org/releases/redmine-3.3.0.tar.gz
tar xzf redmine-3.3.0.tar.gz
chown -R root:root redmine-3.3.0
mv redmine-3.3.0 /var/lib/
cd /var/lib
ln -s redmine-3.3.0 redmine
cd redmine

データベース接続の設定を行います。

cp config/database.yml.example config/database.yml
vim config/database.yml
production:
  adapter: mysql2
  database: redmine_db
  host: your-instance-id.************.ap-northeast-1.rds.amazonaws.com
  username: redmine_user
  password: 'your password'
  encoding: utf8

アプリケーションの設定を行います。

cp config/configuration.yml.example config/configuration.yml
vim config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: 'your smtp server'
      port: 587
      authentication: :cram_md5
      domain: 'your helo domain'
      user_name: 'your account'
      password: 'your password'

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

必要な gem をインストールします。
今回は MySQL を使用するのでこのようになります。

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

シークレットトークンを生成します。

bundle exec rake generate_secret_token

執筆時点 (2016-06-19) では

.../gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"

rake を実行するとこのような警告が出ますが、動作に影響ないようなので無視します。以下同様。
参考: https://nazx.jp/x/CentOS_TIPS_010

データベース

DBスキーマの導入とデフォルトデータのロードを行います。
ここでは REDMINE_LANG=ja を指定して日本語用のデータを入れます。

RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

ファイルシステム

ファイル書き込みが行われる部分についてオーナーの設定をします。

chown -R apache:apache files log tmp public/plugin_assets

パーミッションはすでに 775 などになっているかと思います。

ログローテーション

ここでは logrotate を使います。

vim /etc/logrotate.d/redmine

一例として

/var/lib/redmine/log/*.log {
    weekly
    rotate 53
    missingok
    dateext
    copytruncate
    compress
}

Passenger

Passenger モジュールをビルドします。

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

選択肢で Ruby を選んだら環境チェックが始まります。 もう一度 Enter でコンパイルが始まります。
成功すると最後に httpd 用の設定 ( LoadModule 等) が出力されますので、それをコピーして設定ファイルを作ります。

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

執筆時の例

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

出力された内容に PassengerDefaultUser を足しました。

Apache 設定

Apache HTTP Server の設定を行います。

ここでは /redmine という URL パスで利用すると仮定します。

vim /etc/httpd/conf.d/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

その他、ServerName 、Options 、LoadModule 、MPM チューニング等、httpd を適切に設定します。

httpd を自動起動させたければ

chkconfig httpd on

Redmine 設定

あとはこちら
https://redmine.jp/tech_note/first-step/admin/

12
15
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
12
15