Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.
Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.3. This is a bug fix release.
- [Nginx] Preferred Nginx version upgraded to 0.8.54
- The previous preferred version was 0.8.53.
- PATH_INFO and REQUEST_URI now contain the original escaped URI
- Phusion Passenger passes the URI, as reported by Apache/Nginx, to application processes through the PATH_INFO and REQUEST_URI variables. These variables are supposed to contain the original, unescaped URI, e.g.
/clubs/%C3%BC. Both Apache and Nginx thought that it would be a good idea to unescape the URI before passing it to modules like Phusion Passenger, thereby causing PATH_INFO and REQUEST_URI to contain the unescaped URI, e.g.
/clubs/ü. This causes all sorts of encoding problems. We now manually re-escape the URI when setting PATH_INFO and REQUEST_URI. Issue #404.
- The installer no longer detects directories as potential commands
- Previously the installer would look in $PATH for everything that’s executable, including directories. If one has /usr/lib in $PATH and a directory /usr/lib/gcc exists then the installer would recognize /usr/lib/gcc as the compiler. We now explicitly check whether the item is also a file.
- PseudoIO now responds to #to_io
- Phusion Passenger sets STDERR to a PseudoIO object in order to capture anything written to STDERR during application startup. This breaks some libraries which expect STDERR to respond to #to_io. This has now been fixed. Issue #607.
- Fixed various other minor bugs
- See the git commit log for details.
How do I upgrade to 3.0.3?
Via a gem
First install the gem with the following command:
gem install passenger
If you’re using Phusion Passenger for Apache or for Nginx, then re-run the Apache or Nginx module installer, whichever is appropriate:
At the end the installer will tell you to paste a configuration snippet into your web server config file. Replace the old snippet that you already had with this new one.
Phusion Passenger Standalone users don’t need to run anything else. Whenever you type
it will automatically upgrade itself.
Via Ubuntu packages
John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. The package is available from the Brightbox repository which you can find at:
Add the following line to the Third Party Software Sources:
deb http://apt.brightbox.net hardy main
(The simplest way to do that is to create a file in /etc/apt/sources.list.d/ containing the deb instruction, and then run ‘apt-get update’).
Once you’ve done this then you can install Phusion Passenger by running:
sudo apt-get install libapache2-mod-passenger
sudo apt-get install nginx-brightbox
(Note that John is currently packaging 3.0.3, so it might take a while before this release shows up in the apt repository.)
Via RedHat/CentOS packages
YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.3, so it might take a while before this release shows up in the yum repositories.
Step 1: install the release package
The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:
Fedora Core 14:
rpm -Uvh http://passenger.stealthymonkeys.com/fedora/14/passenger-release.noarch.rpm
Fedora Core 13:
rpm -Uvh http://passenger.stealthymonkeys.com/fedora/13/passenger-release.noarch.rpm
RHEL 5 / CentOS 5 / ScientificLinux 5:
(Note: these packages depend on EPEL.)
rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
RHEL 6 / CentOS 6 / ScientificLinux 6:
These packages will be available as soon as there is a stable beta of either CentOS 6 or SL 6 to use as a build platform.
Step 2: use Yum
From there you can use Yum to install packages. For example, try one of these:
yum install nginx-passenger
yum install mod_passenger
yum install passenger-standalone
Building your own packages
Phusion Passenger is provided to the community for free. If you like Phusion Passenger, please consider sending us a donation. Thank you!