Phusion Passenger 3.0.5 released
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.5. This is a bug fix release.
- [Apache] Fixed Union Station process statistics collection
- Union Station users that are using Apache may notice that no process information show up in Union Station. This is because of a bug in Phusion Passenger’s Apache version, which has now been fixed.
- [Apache] PassengerAnalytics has been renamed to UnionStationSupport
- This option has been renamed for consistency reasons.
- [Nginx] passenger_analytics has been renamed to union_station_support
- This option has been renamed for consistency reasons.
- Fixed Union Station data sending on older libcurl versions
- Some Union Station users have reported that their data don’t show up. Upon investigation this turned out to be a compatibility with older libcurl versions. Affected systems include all RHEL 5 based systems, such as RHEL 5.5 and CentOS 5.5. We’ve now fixed compatibility with older libcurl versions.
- Added support for the Union Station filter language
- This language can be used to limit the kind of data that’s sent to Union Station. Please read the announcement and Union Station’s help page for details.
- Fixed a PassengerMaxPoolSize/passenger_max_pool_size violation bug
- People who host a lot of different applications on Phusion Passenger may notice that it sometimes spawns more processes than is allowed by PassengerMaxPoolSize/passenger_max_pool_size. This has been fixed.
How do I upgrade to 3.0.5?
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.5, 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.5, 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!
Phusion. All rights reserved.
Quite cool… unfortunately, I use page caching so I have to stay with passenger 2 (issue #563)
Why in all your instructions “upgrade” looks more like “install” ? What’s right way to upgrade? Same but “gem update” and passenger-install-nginx-module with redownload sources and recompile?
@Jet: because the installation and upgrade instructions are exactly the same, except with an upgrade you just override the previous configuration you already had.
Hi,
When you says that Passenger standalone is “easier for first-time users but also ideal on development environments”, does it mean that it is not suitable/recommended for production use?
@erwann: No, Phusion Passenger Standalone is greatly suitable for production use. It’s based on an Nginx core and thus can handle being directly connected to the Internet without a reverse proxy.
Thanks Hongli!
Btw, it’s difficult for a newbie like me to find the config file to avoid running passenger from within the rails root app so that I can make passenger start as a service on boot
Hello, I think I found a bug in Passenger. Here it is. Do I check this page for reply from the team?
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/utils.rb:716: [BUG] Segmentation fault
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.6.0]
– control frame ———-
c:0023 p:—- s:0147 b:0147 l:000146 d:000146 CFUNC :getgrgid
c:0022 p:0473 s:0143 b:0143 l:000142 d:000142 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
utils.rb:716
c:0021 p:0063 s:0132 b:0132 l:000131 d:000131 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
utils.rb:198
c:0020 p:0026 s:0117 b:0117 l:000104 d:000116 BLOCK /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/rack/
application_spawner.rb:155
c:0019 p:0109 s:0115 b:0115 l:000114 d:000114 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
utils.rb:572
c:0018 p:0027 s:0105 b:0105 l:000104 d:000104 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/rack/
application_spawner.rb:153
c:0017 p:0032 s:0102 b:0102 l:000101 d:000101 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server.rb:204
c:0016 p:0362 s:0095 b:0095 l:000094 d:000094 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server.rb:180
c:0015 p:0010 s:0086 b:0086 l:000085 d:000085 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/rack/
application_spawner.rb:128
c:0014 p:0082 s:0081 b:0081 l:000062 d:000080 BLOCK /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
spawn_manager.rb:253
c:0013 p:0078 s:0078 b:0078 l:000077 d:000077 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server_collection.rb:132
c:0012 p:0027 s:0073 b:0073 l:000062 d:000072 BLOCK /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
spawn_manager.rb:246
c:0011 p:0014 s:0071 b:0071 l:000065 d:000070 BLOCK /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server_collection.rb:82
c:0010 p:0019 s:0069 b:0069 l:000068 d:000068 METHOD
:10
c:0009 p:0013 s:0066 b:0066 l:000065 d:000065 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server_collection.rb:79
c:0008 p:0131 s:0063 b:0063 l:000062 d:000062 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
spawn_manager.rb:244
c:0007 p:0242 s:0054 b:0054 l:000053 d:000053 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
spawn_manager.rb:137
c:0006 p:0066 s:0050 b:0050 l:000049 d:000049 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
spawn_manager.rb:275
c:0005 p:0178 s:0041 b:0041 l:000040 d:000040 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server.rb:357
c:0004 p:0048 s:0030 b:0030 l:000029 d:000029 METHOD /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/phusion_passenger/
abstract_server.rb:206
c:0003 p:0768 s:0023 b:0023 l:0014e8 d:001a60 EVAL /usr/local/rvm/
gems/ruby-1.9.2-p180/gems/passenger-3.0.5/helper-scripts/passenger-
spawn-server:99
c:0002 p:—- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0014e8 d:0014e8 TOP
—————————
– Ruby level backtrace information
—————————————-
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/helper-
scripts/passenger-spawn-server:99:in `’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server.rb:206:in `start_synchronously’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server.rb:357:in `server_main_loop’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/spawn_manager.rb:137:in `spawn_application’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server_collection.rb:79:in `synchronize’
:10:in `synchronize’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server_collection.rb:82:in `block in
synchronize’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/spawn_manager.rb:246:in `block in
spawn_rack_application’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in
spawn_rack_application’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/rack/application_spawner.rb:128:in `start’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server.rb:180:in `start’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/abstract_server.rb:204:in `start_synchronously’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/rack/application_spawner.rb:153:in
`initialize_server’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/utils.rb:572:in `report_app_init_status’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/rack/application_spawner.rb:155:in `block in
initialize_server’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/utils.rb:198:in `prepare_app_process’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/utils.rb:716:in `lower_privilege’
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/passenger-3.0.5/lib/
phusion_passenger/utils.rb:716:in `getgrgid’
– C level backtrace information
——————————————-
0 libruby.1.9.1.dylib 0×0000000100180702
rb_vm_bugreport + 210
1 libruby.1.9.1.dylib 0x000000010003a0a4 report_bug
+ 372
2 libruby.1.9.1.dylib 0x000000010003a268 rb_bug +
200
3 libruby.1.9.1.dylib 0x00000001000ffe44 sigsegv +
132
4 libSystem.B.dylib 0x00007fff85f6367a _sigtramp +
26
5 libSystem.B.dylib 0x00007fff86055737
__Libinfo_version + 263
6 etc.bundle 0×0000000100570222
etc_getgrgid + 82
7 libruby.1.9.1.dylib 0x000000010017bc13
vm_call_method + 931
8 libruby.1.9.1.dylib 0x0000000100167dc4
vm_exec_core + 8260
9 libruby.1.9.1.dylib 0x000000010016fa63 vm_exec +
1507
10 libruby.1.9.1.dylib 0x000000010016fd6b
rb_iseq_eval_main + 507
11 libruby.1.9.1.dylib 0x000000010003f4a2
ruby_exec_internal + 178
12 libruby.1.9.1.dylib 0x0000000100041e2c
ruby_run_node + 60
13 ruby 0x0000000100000edf main + 79
14 ruby 0x0000000100000e84 start + 52
15 ??? 0×0000000000000003 0×0 + 3
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension
libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
Hello Hongli,
There are a few entries about Internal Dummy Connection everytime our Rails application finish loading. Is this normal?
::1 – - [21/Mar/2011:11:46:25 +0800] “OPTIONS * HTTP/1.0″ 200 – “-” “Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 Phusion_Passenger/3.0.5 (internal dummy connection)”
Thanks!
Yes, that’s Apache, not Phusion Passenger.
Hello Hongli,
Is there a changelog for Passenger? Couldn’t find it anywhere.
Thank you!
Look in the NEWS file in the source tarball.