Phusion Passenger is software with which one can deploy Ruby web applications on the Apache or Nginx web server. Now, with the release of version 3.0.0 beta 1, it also comes with a standalone version that does not require an external web server. Please read http://www.modrails.com/ for details.
In the past period we’ve blogged extensively about the progress of Phusion Passenger 3. Many exciting changes have been introduced. It’s been a long ride, but today we are happy to announce the first Phusion Passenger 3 public beta! We’ve already tested Phusion Passenger 3 extensively in private, and now we’re giving the community a chance to test it as well in order to make the final release rock-solid.
We’ve received a lot of emails from people who are excited about Phusion Passenger 3. Thank you all for your support!
To recap, we’ve described Phusion Passenger 3 extensively in our past Technology Preview articles:
- Technology Preview 1: Performance
Phusion Passenger 3 can be up to 55% faster than Phusion Passenger 2.2.
- Technology Preview 2: Stability, robustness, availability, self-healing
We’ve implemented many safeguards to keep Phusion Passenger stable and running as much as possible.
- Technology Preview 3: Closing the gap between development and production & rethinking the word “easy”
Describes how Phusion Passenger’s usage model differs from Mongrel’s, Thin’s and Unicorn’s and when one would prefer our model over the other and vice versa.
Introduces Phusion Passenger Standalone (formerly called Phusion Passenger Lite) which can be used as a potentially improved replacement for Mongrel, Thin and Unicorn.
- Technology Preview 4: Adding new features and removing old limitations
Except for mass deployment, all features described in the technology previews are available as open source in Phusion Passenger 3. A few more changes have been made since the last Technology Preview:
- The ‘PassengerPreStart’ option
- In Technology Preview 4 we described PassengerMinInstances. That option ensures that, at least x instances will be kept around once they’ve been spawned, but it does not ensure that instances are immediately spawned up during web server start. Instead we have a separate configuration option for that, called PassengerPreStart. PassengerPreStart and PassengerMinInstances and the reason why they’re separate configuration options are described extensively in the manual.
- RVM support
- RVM is becoming more and more popular. Previous versions of Phusion Passenger work fine with RVM, but one has to follow special installation instructions for it to work properly. We’ve noticed that many users are not aware of this and as a result couldn’t get Phusion Passenger working properly with RVM. In Phusion Passenger 3 we’ve collaborated with Wayne E. Seguin and added special support for RVM so that everything should work out-of-the-box, without special installation instructions.
Other minor changes
For completeness, here are a list of minor changes that have not been described in the Technology Previews so far:
- Nginx is now compiled with SSL support by default.
- Nginx can now be compiled on a noexec /tmp filesystem. Fixes bug #380.
- Support for Nginx 0.8.
- Dropped support for Nginx 0.6.
- Much better Ruby 1.9.2 support. Our unit test suite has been refactored; Ruby 1.9.2 passes our unit test suite 100%.
- The PassengerFriendlyErrorPages option has been added. This allows you to turn off the friendly error pages that Phusion Passenger normally displays in the event of an error, so that only a standard 500 error page is shown. This is documented in the manual.
- The PassengerDebugLogFile option has been added. This is documented in the manual.
- User switching support has been made more flexible through the PassengerUser, PassengerGroup, PassengerDefaultUser and PassengerDefaultGroup options. These are documented in the manual.
- RailsSpawnMethod has been renamed to PassengerSpawnMethod because we now support smart spawning for Rack apps as well.
- passenger-install-apache2-module and passenger-install-nginx-module can now be run concurrently without the one deleting files compiled by the other.
- #at_exit blocks are now called during application process shutdown.
- passenger-install-apache2-module now supports a –snippet option. When this option is given, the command outputs the Apache configuration snippet that should be pasted, but doesn’t do anything else.
- Temporary files that Phusion Passenger places in /tmp are touched every 6 hours. This prevents /tmp cleaner daemons that are present on many systems from deleting these temp files that are essential for Phusion Passenger’s functioning. Bug #365.
Installation is almost the same as Phusion Passenger 2. Type:
gem install passenger --pre
If you want to install the Apache or Nginx version, then run the installer as you’re used to:
Or you can download the tarball.
If you want to run Phusion Passenger Standalone, then run:
cd /path-to-your-app passenger start
Things to come
Although Phusion Passenger 3.0 brings many exciting improvements, it is only the beginning. In parallel to Phusion Passenger 3, we have been working on some interesting things which we plan to reveal to the world shortly after the release of Phusion Passenger 3.0. Please stay tuned for future developments.