I attempted to deploy my first rails app (hikerlogs.com) to dreamhost last night and wasn’t very happy with it. It took fastcgi close to 15 minutes to start. This took me a while to figure out. Once I did, I just sat around and waited for it. Once it was up I would receive 500 errors without anything being dumped in any logs. This morning when I sat at my machine to try again, for some strange reason I decided to hit reload and the site was there. I didn’t do a thing. Is this normal behavior or was there something going on with servcer last night?
This is very common at Dreamhost. It is not logged in the Rails logfiles because Rails doesn’t even start. Look into the Dreamhost logfile: ~/logs//http/error.log
The problem is that a new FCGI process is often killed by the server. Dreamhost servers like to kill applications, it’s a known issue. I used to get this a lot when I restarted FCGI the brutal way, by killing all dispatch.fcgi processes, after which I get 500s for minutes. To tell FCGI to restart, it’s better to “touch public/dispatch.fcgi” instead of “killall -9 dispatch.fcgi”.
There’s a “Dreamhost plugin” that helps to reduce these 500 errors: http://gabrito.com/post/ruby-on-rails-dreamhost-plugin