KagoyaのVPSにNginx+Unicorn+Redmine環境をインストールしてみた
今日一日かかるとは思わなかった…。備忘録代わりです。
想定としては、http://ip/redmine/ でアクセスできるような感じで。
参考サイト
- nginx + unicorn + redmine 2.0 を ubuntu で動かしてみた。 - kaz_shuの日記
- インストール | Redmine.JP
- nginx+Unicornでサブディレクトリでアプリを動かす | ひげろぐ
- cocoa*life - Redmine を nginx + Unicorn で動かしてみる
まずは、普通にApache+Passengerでインストールした。以下を参考にすればあっさり出来ると思います。ちょっと面倒くさいけど。
インストール | Redmine.JP
ここのCentOSでのインストールのなかでのサブディレクトリにインストールというのが今回の目的に該当します。
次に、Nginx環境のインストール。
nginx: download
Kagoyaの環境がCentOS 5.8なので、yumにレポジトリ追加して、インストールしました。
最後に、unicornをBundlerを使ってインストール。
というわけで、先にBundlerをインストールしておきましょう。
次は、設定ですが。面倒くさくなってきたので、直接設定ファイル書いてみる。
worker_processes 2 listen '/tmp/unicorn.sock' stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) preload_app true before_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! old_pid = "#{ server.config[:pid] }.oldbin" unless old_pid == server.pid begin Process.kill :QUIT, File.read(old_pid).to_i rescue Errno::ENOENT, Errno::ESRCH end end end after_fork do |server, worker| defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
次に、/etc/nginx/nginx.conf
upstream redmine { server unix:/tmp/unicorn.sock; } server { listen 80; server_name ex.vir.kagoya.net; root /var/www/html; location /redmine { try_files $uri @unicorn; } location @unicorn { 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; } }
ここまで設定したら、unicornの起動
[root@localhost redmine]# unicorn_rails -c config/unicorn.rb -E production -D --path /redmine
最後の"--path /redmine"が無いために、5時間半ぐらい悩んでました。
とりあえず、解決したので、以後もがんばります。
追記:2012年7月19日
Gemfile.localを忘れていました
gem 'unicorn'