AWSでRedmineをセットアップ時の記録

AWSセットアップ
使ったAMI
Amazon Linux AMI 2014.03.1

インスタンスのセットアップ中にConfigure Security GroupでHTTPを追加

MySQLセットアップ
# yum install mysql mysql-server mysql-devel

[mysqld]セクションに以下を追加

/etc/my.cnf
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=innodb
collation-server=utf8_general_ci
innodb_file_format=Barracuda
innodb_file_per_table=1
MySQLを起動
$ sudo service mysqld start

ユーザ作成、DB作成
# mysql -uroot

mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY '********';
mysql> create database dbname;
mysql> GRANT ALL PRIVILEGES ON dbname.* TO user@localhost ;

■モジュールインストール
# yum install mysql-devel
# yum install ImageMagick ImageMagick-devel -y
# yum install httpd httpd-devel -y

# gem install bundler

Redmine セットアップ
# cd /home/
# mkdir redmine
# cd redmine/
# wget http://www.redmine.org/releases/redmine-2.5.1.tar.gz
# tar xvzf redmine-2.5.1.tar.gz
# cd redmine-2.5.1
$ bundl install

nokogiriでエラーが出たので以下を実行

$ sudo yum install gcc*
$ sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel
※この2行は必要ないかも。。。

# bundle config build.nokogiri --use-system-libraries

$ bundle install

$ rake generate_session_store

  • > Note: The rake task generate_session_store has been deprecated, please use the replacement version generate_secret_token

古いコマンドだよとのことなので、エラーメッセージに従って以下のコマンドを実行。

$ rake generate_secret_token
$ rake db:migrate RAILS_ENV=production
$ rake redmine:load_default_data RAILS_ENV=production

Redmineの設定

# vim [redmine_root]/config/email.yml

[redmine_root]/config/email.yml
production:
delivery_method: :async_smtp
smtp_settings:
address: localhost
port: 25
domain: domainname.com
# vim [redmine_root]/config/database.yml

[redmine_root]/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost
username: user
password: "********"
encoding: utf8
■Passengerインストール
# gem install passenger --no-rdoc --no-ri
# yum install curl-devel

passenger-install-apache2-moduleを実行したら警告が出たので、事前に以下のコマンドを実行しておく。
# sudo dd if=/dev/zero of=/swap bs=1M count=1024
# sudo mkswap /swap
# sudo swapon /swap

# passenger-install-apache2-module

最後に表示される以下の情報をコピーしておく。

LoadModule passenger_module /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so

PassengerRoot /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45
PassengerDefaultRuby /usr/bin/ruby2.0


ServerName www.yourhost.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /somewhere/public

# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted


Passengerの設定をhttpd.confに追加
# vim /etc/httpd/conf/httpd.conf

/etc/httpd/conf/httpd.conf
LoadModule passenger_module /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so

PassengerRoot /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45
PassengerDefaultRuby /usr/bin/ruby2.0

Passenger.confの設定
Redmineを任意のフォルダで動作させるためにはRackBaseURIの指定が必要

# vim /etc/httpd/conf.d/passenger.conf

/etc/httpd/conf.d/passenger.conf
# LoadModule passenger_module /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/share/ruby/gems/2.0/gems/passenger-4.0.45
PassengerDefaultRuby /usr/bin/ruby2.0

PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0
PassengerResolveSymlinksInDocumentRoot on

RackBaseURI /redmine
redmineに【ドメイン名/redmine】でアクセスするため、シンボリックリンク作成
シンボリックリンク作成
# ln -s /home/redmine/redmine-2.5.1/public/ /var/www/html/redmine

apacheに権限付与
# cd /home/redmine
# chown -R apache:apache redmine-2.5.1

apache再起動
# service httpd start