Debian Lenny - Installing Passenger with Apache
Phusion's Passenger (mod_rails) is an exciting development in serving your Ruby on Rails application with the Apache web server.
Incredibly simple to install and use, you can have a rails application up and running in no time. You don't even have to worry about ports or setting up a proxy to another server.
Prerequisites
To get the most out of this article you need to have a couple of things preinstalled:
Firstly, you need Apache installed (see this article).
Secondly, you need ruby and rubygems installed (if not please see the Ruby on Rails article).
mod_rails installation
Passenger (mod_rails) is a rubygem.
Let's install the passenger gem:
sudo gem install passenger
Once completed, we need to install the Apache2 module:
sudo passenger-install-apache2-module
A dialogue opens in the terminal and starts with:

As suggested, press 'Enter/Return':

I deliberately left the Apache headers off the installation until this point as I want to demonstrate how easy the installation is.
The passenger (mod_rails) install has found a missing dependency — let's press 'Enter/Return':

How cool is that? It tells us what to do.
Well, let's go ahead and install the headers (we'll use aptitude though):
sudo aptitude install apache2-prefork-dev
Once done, we can try the install again:
sudo passenger-install-apache2-module
All being well, the install will complete with instructions at the end letting us know we need to add some lines to the main Apache2 config file.
No problem:
sudo nano /etc/apache2/apache2.conf
Note: Passenger is an active gem and is being updated all the time. Rather than copy and paste the output I show below, please ensure you copy and paste the output from the install itself.
At the time of writing the article, I installed passenger v2.2.4 — you may have installed a later version.
So, for my v2.2.4 install, I added the following lines to my apache2.conf:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.4
PassengerRuby /usr/bin/ruby1.8
Apache restart
Now all we need to do is restart Apache:
sudo /etc/init.d/apache2 restart
Done
That's all we need to do to install mod_rails onto our Slice.
The next article will show how to create a Ruby on Rails application and serve it using passenger — an incredibly easy process.
—
Ben B


Article Comments:
ruby discovrer commented Sat Sep 19 17:24:09 UTC 2009:
really good thnx
Bob Jacobsen commented Sat Jan 30 17:53:00 UTC 2010:
I ran into problems with mkmf missing in my installation. I had installed ruby-dev, but noticed that is pulled sereal 404's in the updated. I corrected by:
sudo apt-get update sudo apt-get install ruby1.8-dev sudo apt-get install make
Thanks for writing these articles! They are VERY usefull!