Overview
All Passenger applications require a compatible filesystem layout to launch and manage a Passenger-backed application. A layout consists of 4 features:
- Startup file
- Passenger loads this file to start the application
- Startup file names differ by application type (Python, Ruby, Node.js, Meteor)
- Document root folder called
public/
- all static content goes here (images, JavaScript, CSS)
- Apache configuration file named
.htaccess
- htaccess rules instruct the web server to treat this as a Passenger app
tmp/
folder for miscellany- tmp/ is used primarily to control Passenger process restarts
This is an example layout for /var/www/nodejs, a sample Node.js application:
+-- app.js <-- startup file +-- public <-- html-accessible document root ¦ +-- .htaccess <-- apache configuration +-- tmp <-- miscellaneous folder
Application startup files
Of the startup files expected by Passenger, only legacy Ruby on Rails applications expect the startup file to be located a directory down in config/
. Every other application type expects the startup file to be one level below public/
.
Application Type | Startup File |
---|---|
Ruby on Rails >= 3.0, Ruby Rack |
config.ru |
Ruby on Rails 1.x and 2.x |
config/environment.rb |
Python |
passenger_wsgi.py |
Node.js, Meteor |
app.js |