Phusion white papers Phusion overview

Phusion Blog

Phusion Passenger 3.0.7 released with support for Nginx 1.0.0

By Hongli Lai on April 14th, 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.7. This is a bug fix release.

  • Fixed a bug passenger-install-apache2-module. It could crash on some systems due to a typo in the code.
  • Upgraded preferred Nginx version to 1.0.0.
  • Phusion Passenger Standalone now pre-starts application processes at startup instead of doing that at the first request.
  • When sending data to Union Station, the HTTP status code is now also logged.
  • Various Union Station-related stability improvements.
  • The Linux OOM killer was previously erroneously disabled for all Phusion Passenger processes, including application processes. The intention was to only disable it for the Watchdog. This has been fixed, and the Watchdog is now the only process for which the OOM killer is disabled.
  • Fixed some compilation problems on OpenBSD.
  • Due to a typo, the dependency on file-tail was not entirely removed in 3.0.6. This has now been fixed.

How do I upgrade to 3.0.7?

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

  • Dan

    passenger 3.0.7 standalone build failure on Mac OSX LION:

    Just FYI, on the previous and the current pre-release of LION, passenger standalone fails while trying to build nginx with the errors below. Note that I am able to successfully build nginx-1.0.0 myself by hand without any errors…

    This is during the build of ngxinx-core:

    cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Wunused-function -Wunused-variable -Wunused-value -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \
    -o objs/src/http/ngx_http_file_cache.o \
    src/http/ngx_http_file_cache.c
    cc1: warnings being treated as errors
    src/http/ngx_http_file_cache.c: In function ‘ngx_http_file_cache_create_key’:
    src/http/ngx_http_file_cache.c:216: warning: ‘MD5_Init’ is deprecated (declared at /usr/include/openssl/md5.h:113)
    src/http/ngx_http_file_cache.c:226: warning: ‘MD5_Update’ is deprecated (declared at /usr/include/openssl/md5.h:114)
    src/http/ngx_http_file_cache.c:233: warning: ‘MD5_Final’ is deprecated (declared at /usr/include/openssl/md5.h:115)
    make[1]: *** [objs/src/http/ngx_http_file_cache.o] Error 1

  • Dan

    correction; this appears to be a problem with nginx. I reproduced it with the 1.0.0 version of nginx too.

  • Jones Lee

    Thanks for this great software, there’s nothing could replace the simplicity and ease like combination Passenger + Nginx.

  • mojo

    Does anyone get this warning after upgrading to 3.0.7?

    =============== Phusion Passenger Standalone web server started ===============
    PID file: /Users/mojo/Sites/huey/spree/sandbox/tmp/pids/passenger.3000.pid
    Log file: /Users/mojo/Sites/huey/spree/sandbox/log/passenger.3000.log
    Environment: development
    Accessible via: http://0.0.0.0:3000/

    You can stop Phusion Passenger Standalone by pressing Ctrl-C.
    ===============================================================================
    Cannot execute ‘/Users/mojo/.passenger/standalone/3.0.7-x86_64-ruby1.9.2-macosx-10.6/support/helper-scripts/prespawn http://0.0.0.0:3000‘: Permission denied (13)

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

    @Dan: That’s an Nignx problem. Please report it to the Nginx authors.

    @mojo: please check your permissions on that file.

  • mojo

    @Hongli:
    -rw-r–r– 1 mojo staff 2078 18 Apr 09:14 /Users/mojo/.passenger/standalone/3.0.7-x86_64-ruby…

    that looks okay to me unless i perhaps have to set it to wheel or root?

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

    I don’t see which file it is in your paste because of the “…”. Anyway the ‘prespawn’ script must be executable.

  • Anthony

    I’m also getting the permission denied error
    Cannot execute ‘/home/f0/anthony/.passenger/standalone/3.0.7-x86-ruby1.9.2-linux-gcc4.1.2-1002/support/helper-scripts/prespawn http://0.0.0.0:9876‘: Permission denied (13)

    The permissions were 644 so I set the permissions to 755 and all was well. I suspect there may be a bug in the initial creation of this file that sets it to 644.

  • Anthony

    As a follow up – I do not get this error on 3.0.6, although with 3.0.6 I did need to install file-tail.

  • Pingback: Phusion Passenger 3.0.7 发布,增加对Nginx 1.0.0的支持 | Emerge yourself()

  • Dan

    Thanks. I did work around the nginx problem by using my own tar-ball without -Werror.

    I also ran into the same problem with the permission:

    Cannot execute ‘/Users/mack/.passenger/standalone/3.0.7-x86_64-ruby1.9.2-macosx-10.7/support/helper-scripts/prespawn http://0.0.0.0:3000‘: Permission denied (13)

    I just did a chmod a+x on all the files in helper-scripts to work around it. Everything else so far is working great, thanks!

    Dan

  • http://ku1ik.com/ Marcin Kulik

    I’ve prepared ArchLinux AUR package for nginx 1.0 with Passenger enabled: http://aur.archlinux.org/packages.php?ID=28185

  • Claudio

    This is the stack trace I get during the installation of passenger standalone:

    http://pastie.org/1962618

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

    Dan,

    I have built a tar ball which successfully builds on Lion Preview 4 but I can’t work out how to install it so that Passenger sees it?

    When I run passenger start it still tried to install the downloaded version.

    Sorry for the possible noob question! 🙂

  • Paul Davis

    I am running into the Rake 0.9 compatibility prob with 3.0.7.

    I see that it is fixed in the repo, but I am not sure how to implement that on my machine.

    Can someone post one more level of detail?

    Thanks so much!

  • http://dallasreedy.com Dallas

    I had the same issue with the prespawn helper script and changing the permissions to 755 also worked for me.

  • alan

    ditto on the prespawn script permissions error

  • http://elandesign.co.uk Paul Smith

    I found a workaround for installing passenger standalone on OSX 10.7 Lion.

    Looks like the problem is with nginx, and it needs the -Wno-deprecated-declarations option when compiling.
    http://www.ruby-forum.com/topic/2193556#1012378

    There may be a better way of doing this (environment variable maybe – I’m not really a gcc person), but running this command the first time you try to start passenger standalone does the job:

    $ CC=”/usr/bin/gcc-4.2 -Wno-deprecated-declarations” passenger start

  • http://www.historicusinc.com Charles Forcey

    Thanks, Paul. That got me running on the GM Lion, minus of course the smart quotes the blog or my browser put in and plus a semi colon: export CC=”/usr/bin/gcc-4.2 -Wno-deprecated-declarations”;passenger start