Redmineのインストール
RedmineをGitHubからダウンロードしてきて、bundle installを行います(今回はMySQLを使うのでpostgresql sqlite
は外しました)
git clone https://github.com/redmine/redmine.git
cd redmine
bundle install --path vendor/bundle --without development test rmagick postgresql sqlite
MySQLでDB作成
MySQLでDBとユーザーを作成します。今回は出たばかりのMySQL5.6.10を使いました。ユーザーやデータベースは後からYMLで設定しますので、下記ではzabbixユーザーとZabbixデータベースを作っていますが、名前は別でも構いません。
mysql -u root -p
mysql create database redmine;
mysql create user 'redmine'@'localhost' identified by '*******';
mysql grant all privileges on redmine.* to 'redmine'@'localhost';
databaseのYMLを編集します。
cp config/database.yml.example config/database.yml
vi config/database.yml
編集の際の注意点としては、adapter: mysql2を忘れずに入れてください。
初期DB作成
初期DBの作成と言語選択を行います。2詰めのコマンド実行時に言語を聞かれますが、日本語jaを選択します。
$RAILS_ENV=production rake db:migrate
$RAILS_ENV=production rake redmine:load_default_data
Select language: ar, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
Unicornサーバーのインストール
UnicornはRuby on Railsに特化したアプリケーションサーバーで、高速なのと並列処理を得意とします。
まずUnicornのGemfile.localを作成します。
echo 'gem "unicorn"' Gemfile.local
bundle install
うまくいけば以下のようなメッセージが表示されます
bundle install
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Installing rake (10.0.3)
Installing i18n (0.6.1)
Installing multi_json (1.5.0)
Installing activesupport (3.2.9)
Installing builder (3.0.0)
Installing activemodel (3.2.9)
Installing erubis (2.7.0)
Installing journey (1.0.4)
Installing rack (1.4.4)
Installing rack-cache (1.2)
Installing rack-test (0.6.2)
Installing hike (1.2.1)
Installing tilt (1.3.3)
Installing sprockets (2.2.2)
Installing actionpack (3.2.9)
Installing mime-types (1.19)
Installing polyglot (0.3.3)
Installing treetop (1.4.12)
Installing mail (2.4.4)
Installing actionmailer (3.2.9)
Installing arel (3.0.2)
Installing tzinfo (0.3.35)
Installing activerecord (3.2.9)
Installing activeresource (3.2.9)
Installing coderay (1.0.8)
Installing rack-ssl (1.3.2)
Installing json (1.7.6) with native extensions
Installing rdoc (3.12)
Installing thor (0.17.0)
Installing railties (3.2.9)
Installing jquery-rails (2.0.3)
Installing kgio (2.8.0) with native extensions
Installing mysql2 (0.3.11) with native extensions
Installing net-ldap (0.3.1)
Installing ruby-openid (2.1.8)
Installing rack-openid (1.3.1)
Using bundler (1.2.3)
Installing rails (3.2.9)
Unicornサーバーの設定
私はUnicornのconfigは以下のように設定しました。
vim config/unicorn.rb
worker_processes 8
listen 8008, :tcp_nopush => true
timeout 30
pid File.expand_path("tmp/pids/unicorn.pid", ENV['/srv/www/redmine/redmine'])
stderr_path File.expand_path("log/unicorn.stderr.log", ENV['/srv/www/redmine/redmine'])
stdout_path File.expand_path("log/unicorn.stdout.log", ENV['/srv/www/redmine/redmine'])
preload_app true
GC.respond_to?(:copy_on_write_friendly=) and
GC.copy_on_write_friendly = true
before_fork do |server, worker|
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
Unicornの起動
以下のコマンドで起動します。
bundle exec unicorn_rails -c config/unicorn.rb -E production -D
Nginxの設定
Unicornサーバーのポートと接続してリバースプロキシするために、nginx.confに以下の設定を入れました。
upstream redmine {
ip_hash;
server 127.0.0.1:8008;
}
server {
listen 80;
server_name redmine.geek.sc;
location / {
auth_basic "Saito Server Security";
auth_basic_user_file "/srv/www/.htpasswd";
root /srv/www/redmine/redmine/public;
if (-f $request_filename) { break; }
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://redmine/;
}
}
Nginxを再起動します。これで、redmine.geek.scのRedmineへアクセスできるようになりました。
Unicornサーバーの自動起動
uUnicornサーバーを電源投入時に自動起動させる方法はいくつかあるのですが、私は面倒だったので、起動時に自動実行される設定ファイル(openSUSEは/etc/init.d/boot.local、CentOSは/etc/rc.local)に次のように記述しました。
cd /srv/www/redmine/redmine
bundle exec unicorn_rails -c config/unicorn.rb -E production -D
これで再起動時もUnicornサーバーが自動実行されます。
これで設定完了です。Unicornで高速Redmine環境(Ruby on rails)を!