Phusion white papers Phusion overview

Phusion Blog

Phusion Passenger 3.0.6 released

By Hongli Lai on April 3rd, 2011

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.6. This is a bug fix release.

  • Fixed various compilation problems such as XCode 4 support and OpenBSD support.
  • Fixed various Union Station-related stability issues.
  • Fixed an issue with host name detection on certain platforms.
  • Improved error logging in various parts.
  • The dependency on the file-tail library has been removed.
  • During installation, check whether /tmp is mounted with ‘noexec’.
    Phusion Passenger’s installer relies on /tmp *not* being mounted with ‘noexec’. If it is then the installer will now show a helpful error message instead of bailing out in a confusing manner. Users can now tell the installer to use a different directory for storing temporary files by customizing the $TMPDIR environment variable.
  • Phusion Passenger Standalone can now run Rackup files that are not named ‘config.ru’.
    The filename can be passed through the command line using the -R option.

How do I upgrade to 3.0.6?

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 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:

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.6, 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.6, 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

or

yum install mod_passenger

or

yum install passenger-standalone

Building your own packages

There are instructions for building your own packages and Yum repositories in the rpm directory ReadMe within the GitHub repository.

Final

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

  • http://www.nedap-healthcare.com Bart ten Brinke

    Is there a specific reason why passenger needs /tmp to be mounted as executable? Because security-wise it sounds like a bad idea…

  • http://www.phusion.nl/ Hongli Lai

    It only needs that during installation. It needs to compile a few C/C++ test applications in order to autodetect system features. Once installed /tmp can be noexec.

  • Jones Lee

    Thanks for such a great product. I am just converted from Reverse Proxy with Mongrel clusters, so there are quite few things that I am not familiar with. I would like to ask if possible to specify the nginx version for the standalone mode, I am tasked to take on the development version 0.9.x and it seems to me Passenger Standalone is the most sane solution

  • http://www.phusion.nl/ Hongli Lai

    Yes it’s possible. See passenger --help.

  • Jones Lee

    Thanks. I could not find any details with –help in regarding of specifying the Nginx core version for Standalone mode, it’s default to Nginx core 0.8.54 (probably hardcoded – fix me if i am wrong). Cheers.

  • http://www.phusion.nl/ Hongli Lai

    Oops, I meant passenger start --help. In particular this thing here:

            --nginx-version VERSION      Nginx version to use as core (default:
                                         0.8.54)
  • http://leonidasoy.fi Jarno Keskikangas

    Heya,

    We noticed a possible bug in Passenger Standalone 3.0.6. Apparently, when using with Capistrano, restart.txt doesn’t work properly.

    Steps to reproduce:

    1. Deploy project with Capistrano
    2. Start passenger standalone in project/current with passenger start –daemonize –environment #{rails_env} –port 3000
    3. Restart by touching restart.txt with cap deploy:restart (works as expected)
    4. Deploy new version by cap deploy:migrations
    5. The application is not restarted even with explicit cap deploy:restart

    It seems that Passenger Standalone is checking restart.txt from the *previous* deployment tmp folder.

  • http://www.phusion.nl/ Hongli Lai

    Jarno: that’s not a bug, that’s how it’s supposed to behave. You will get the same behavior with Mongrel/Thin/Unicorn. The core issue is that ‘current’ is a symlink to a specific release’s directory. If you change the current working directory to there then the OS will stick it to that directory even if you change the ‘current’ symlink later. You’re not supposed to touch restart.txt, you’re supposed to run ‘passenger stop’ before updating the symlink, then update the symlink, then run ‘passenger start’ again.