Passenger 3.2 will have quite some nice new features. 1 2
The features I’m looking forward to most is the ability to specify - per virtual server - which ruby to use.
Before, you installed passenger and specified the required ruby version using passenger_ruby
, like this in your nginx.conf
:
http {
passenger_root /opt/passenger;
passenger_ruby /usr/local/bin/ruby;
server {
server_name ariejan.net;
passenger_enabled on;
}
}
Now, if you added another server it would be forced to use the same ruby version. This might be okay for most servers, but for me not so much. I have several side-projects running on a single machine, and using only one ruby version is not optimal or even impossible.
Now, with the upcoming Passenger 3.2 you can select a ruby version per server. This is awesome. All you have to do is move the passenger_ruby
directive into the server
block and all is set. Of course, you can leave the globally set ruby just as is.
http {
passenger_root /opt/passenger;
passenger_ruby /usr/local/bin/ruby;
server {
server_name ariejan.net;
passenger_enabled on;
passenger_ruby /home/deployer/.rvm/rubies/ruby-1.9.3-p194/bin/ruby;
}
}
As you can see in the example above, I’m referencing ruby-1.9.3-p194, installed with RVM.
Installing “experimental” Passenger#
The installation is easy, as usual, but you must checkout the passenger source from Github and use the experimental
branch.
Warning: do not install the experimental
branch of Passenger on your production server unless you are absolutely sure what you’re doing and you know how to rollback quickly and easily to a stable version of passenger.
cd /opt
git clone https://github.com/FooBarWidget/passenger.git
cd /opt/passenger
git checkout -b experimental origin/experimental
./bin/passenger-install-nginx-module