Passenger(mod_rails)環境にCapistranoでデプロイする
Capistranoをmod_rails向けに設定してみます。
mod_railsの導入、Capistranoの導入は以下の記事を参照してください。
Capistranoの設定
今までと同じようにdeploy環境を作って、config/deploy.rb を少し変更すればOKです。
以下をdeploy.rbに追記します。
namespace :deploy do desc "Restarting mod_rails with restart.txt" task :restart, :roles => :app, :except => {:no_release => true} do run "touch #{current_path}/tmp/restart.txt" end [:start, :stop].each do |t| desc "#{t} task is a no-op with mod_rails" task t, :roles => :app do ; end end end
restart.txtの生成が肝です。mod_railsはrestart.txtの有無でアプリを更新するべきか判断します。
この状態で、cap deploy すればデプロイが可能です。Apacheの再起動は必要なし。
VirtualHostの設定
DocumentRootにcurrentを入れればOKです。以下のようになります。
<VirtualHost *:80> ServerName hogehoge.example.jp DocumentRoot /home/railsapp/hogehoge/current/public </VirtualHost>