Capistrano spinner / spawner / reaper depend on lighttpd
June 10th, 2006
After much searching and confusion it seems to me that the capistrano spinner / spawner / reaper scripts depend on the installation of lighttpd.
Specifically, they depend on the installation of the spawn-fcgi script that is provided by lighttpd.
While trying to deploy a rails app on a Solaris install I don’t have root on, I kept seeing the following error when trying to use script/process/spawner:
Checking if something is already running on port 8000…NO
Starting FCGI on port: 8000
env: spawn-fcgi: No such file or directory
Checking if something is already running on port 8001…NO
Starting FCGI on port: 8001
env: spawn-fcgi: No such file or directory
Checking if something is already running on port 8002…NO
Starting FCGI on port: 8002
env: spawn-fcgi: No such file or directory
It turns out that script/process/spawner delegates to another file in YOUR_RAILS_INSTALL/railties/lib/commands/process/spawner.rb which has the following code:
OPTIONS = {
:environment => “production”,
:spawner => ‘/usr/bin/env spawn-fcgi’,
:dispatcher => File.expand_path(RAILS_ROOT + ‘/public/dispatch.fcgi’),
:port => 8000,
:instances => 3,
:repeat => nil
}
After a bit more research it turns out that spawn-fcgi is part of lighttpd, although it can be used with apache. But, I don’t have any lighthttpd so I’m going to have work around this. There’s probably a way to set that OPTIONS hash in script/process/spinner to make it work, but for now, I’m going to cop out and let apache manage the fcgi processes.





Leave a Reply