rails + lighttpd + fastcgi の環境で、fastcgi の起動・停止・再起動を capistrano に任せる
rails + lighttpd + fastcgi の環境で、fastcgi の起動・停止・再起動を capistrano に任せる作業に、少しハマったので作業メモを残す。
deploy.rb の内容や、他の詳しい解説は他のウェブ上資料に譲る。
app_name/script/spin
./script/process/spawner fcgi -p 11000 -i 3 -r 5
実行権限を忘れずに。
app_name/config/lighttpd.conf
fastcgi.server = ( ".fcgi" => ( "localhost-11000" => ( "host" => "127.0.0.1", "port" => 11000 ), "localhost-11001" => ( "host" => "127.0.0.1", "port" => 11001 ), "localhost-11002" => ( "host" => "127.0.0.1", "port" => 11002 ), "localhost-11003" => ( "host" => "127.0.0.1", "port" => 11003 ), "localhost-11004" => ( "host" => "127.0.0.1", "port" => 11004 ), ) )
上記を追加する。
以上で、初期で準備される deploy.rb に特別な task を何も追加しなくとも、cap コマンドのオプション deploy:start deploy:stop deploy:restart が動く。
ただし、spawner や reaper は、fastcgi の面倒を見てくれるが lighttpd の面倒は見てくれない。
lighttpd の面倒を cap コマンドで見る場合は、spin に lighttpd -f ./config/lighttpd.conf 等の起動コマンドを追加し、deploy:stop の task として killall lighttpd 等を追加する必要がある。