Posts Tagged ‘mod_rails’

Experience with mod_rails

Monday, November 17th, 2008

Deploying an application using mod_rails (Phusion Passenger) is like magic.

$ gem install passenger
$ passenger-install-apache2-module

Install the gem, load the Apache module – everything “just works”. It’s ridiculously easy.

I want to fall in love with mod_rails. I’m ecstatic somebody is helping novices configure Apache and trying to make everyone else’s life slightly easier. Too many man months have been spent reading up on deploying a mongrel cluster with proxy_balancer. Passenger tries to make everyone’s life much much easier, but it goes too far. If you’re doing anything with your Apache instance that isn’t purely confined to your Rails sandbox, save yourself some time and heartache and don’t even bother with Passenger. It’ll let you down.

Rails succeeds in achieving a nice balance between Magic and Pragmatic. Rails allows an enterprising developer to peek behind the curtains and make something “custom” happen. Passenger doesn’t. For instance: the inability to get well defined behavior with mod_rewrite or mod_alias is infuriating. Equally annoying is the inability to turn off mod_rails for a given virtual host. Want to run a piece of PHP on your site or have a sub-uri host your PHP based forum? Good luck. Have a low traffic app on your domain that you’d like to use Passenger for while serving your main site with mongrel. Good luck.

Rails developers might not be the most hardcore bunch out there, but they are characteristically willing to look outside their sandbox in order to get something Better done more Quickly. Denying them the ability to adequately configure their application using ‘legacy’ methods isn’t going to get you very far. I’ve tried to deploy Passenger twice now in the past 3 months, and have officially thrown in the towel.

Update 6/29/09: These concerns are now moot. mod_rails plays nice with mod_rewrite with the high performance option. Long live mod_rails!

Subscribe:

Add to Google
RSS
Try ExpanDrive

If you’ve heard of SSH then you need ExpanDrive.