Phusion white papers Phusion overview

Phusion Blog

Phusion Passenger 3.0.1 released

By Hongli Lai on December 6th, 2010

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.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.1. This is a bug fix release.

MUCH faster compilation
We’ve applied code aggregation techniques, allowing Phusion Passenger to be compiled much quicker now. For example, compiling the Nginx component (not Nginx itself) on a MacBook Pro now takes only 29 seconds instead of 51 seconds, an improvement of 75%! Compiling the Apache module on a slower Dell Inspiron now takes 39 seconds instead of 1 minute 22 seconds, or 110% faster!
Fixed malfunction after web server restart
On Linux systems that have a non-standard filesystem on /tmp, Phusion Passenger could malfunction after restarting the web server because of a bug that’s only triggered on certain filesystems. Issue #569.
Boost upgraded to version 1.44.0.
We were on 1.42.0.
Much improved startup error messages
Phusion Passenger performs many extensive checks during startup to ensure integrity. However the error message in some situation could be vague. These startup error messages have now been improved dramatically, so that if something goes wrong during startup you will now more likely know why.
Curl < 7.12.1 is now supported
The previous version fails to compile with Curl versions earlier than 7.12.1. Issue #556.
passenger-make-enterprisey fixed
This is the command that people can run after donating. It allows people to slightly modify Phusion Passenger’s display name as a joke. In 3.0.0 it was broken because of a typo. This has been fixed.
Removed passenger-stress-test
This tool was used during the early life of Phusion Passenger for stress testing websites. Its performance has never been very good and there are much better tools for stress testing, so this tool has now been removed.
[Apache] RailsEnv and RackEnv configuration options are now equivalent
In previous versions, RailsEnv only had effect on Rails 1 and Rails 2 apps while RackEnv only had effect on Rack apps. Because Rails 3 apps are considered Rack apps, setting RailsEnv had no effect on Rails 3 apps. Because this is confusing to users, we’ve now made RailsEnv and RackEnv equivalent. Issue #579.
[Nginx] Fixed compilation problems on systems with unpowerful shells
Most notably Solaris. Its default shell does not support some basic constructs that we used in the Nginx configure script.
[Nginx] Upgraded default Nginx version to to 0.8.53
The previous default was 0.8.52.
[Nginx] passenger_enabled now only accepts ‘on’ or ‘off’ values
Previously it would recognize any value not equal to ‘on’ as meaning ‘off’. This caused confusion among users who thought they could also specify ‘true’, so we now throw a proper error if the value is unrecognized. Fixes issue #583.

How do I upgrade to 3.0.1?

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:

passenger-install-apache2-module
passenger-install-nginx-module

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

passenger start

it will automatically upgrade itself.

Via a native Linux package

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:

http://apt.brightbox.net

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

-or-

sudo apt-get install nginx-brightbox

(Note that John is currently packaging 3.0.1, so it might take a while before this release shows up in the apt repository.)

Final

Phusion Passenger is provided to the community for free. If you like Phusion Passenger, please consider sending us a donation. Thank you!

  • William T

    29 seconds instead of 51 seconds is an improvement of 43%, not 75%.

  • @William: You’re calculating it the other way around. 51 / 29 = 1.75, hence 75% faster.

    I think it’s correct to divide the original run time by the new runtime, then multiplying by 100 and substract 100. Suppose that the original took 60 seconds, and the improved version takes 20 seconds. 60 / 20 = 3, while 1 – 20 / 60 = 0.66. This is obviously 3 times as fast, or 200% faster, not 66% faster.

  • Are you kidding? I just upgraded my prod to 3.0.0 a couple hours before this post.

    Looks like I’m going to have to block out another 2 minutes to plan, test and execute the incredibly complex upgrade.

  • Pingback: Phusion Passenger 3.0.1 发布 | 小荣博客()

  • After upgrading Passenger on my local dev machine (running Mac OS X 10.6.5) and restarting Apache, I stumbled upon this error message:

    /usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument

    I found a solution here: http://articles.itecsoftware.com/shell-scripting/fix-for-mac-os-10-6-5-apachectl-line-82-ulimit

  • Pingback: Link dump for December 7th | The Queue Blog()

  • What’s the best way to start and monitor a Passenger Standalone process on Ubuntu? I’m trying to get it working with Upstart but without much success. Any tips?

    Thanks

  • Thanks for the new version guys!

  • Do you still recommend using REE or is it better to use Ruby 1.9.2?

  • Sad, still no IPv6 support in the nginx version? Any reason not to run nginx’ ./configure with the ipv6 option turned on? thanks.

  • @Roland: because
    1) 99% of the people do not need IPv6.
    2) enabling IPv6 support makes Nginx more resource hungry.
    3) you can easily compile your own Nginx with exactly those modules you want. This option is very explicitly provided to the user during installation time.