Installing Passenger Enterprise + Nginx on an AWS production server
for Python apps + Mac OS X
On this page, we will install Passenger. After installing Passenger we can begin with deploying the app.
Table of contents
Step 1: download and install your license key
Before you can install Passenger Enterprise, you need to download and install your license key. This is a regular file that you need to copy to your production server.
Click on the button to download the license key.
The license key will be downloaded to your local computer. Copy this license key file to your production server, for example using
local-computer$ cd /path-to-your-local-computer-download-folder local-computer$ scp -i your_ec2_key.pem passenger-enterprise-license email@example.com:
adminuser with the name of an account with administrator privileges or sudo privileges.
This is usually
Finally, login to your production server and save the file as
local-computer$ ssh -i your_ec2_key.pem firstname.lastname@example.org production-server$ sudo mv passenger-enterprise-license /etc/passenger-enterprise-license production-server$ chmod 644 /etc/passenger-enterprise-license
Step 2: obtain your download token
Your download token is needed in order to install Passenger Enterprise. In the Customer Area, find your download token and copy it to your clipboard.
Step 3: install Passenger package
You can install Passenger through Homebrew:
$ brew tap phusion/passenger $ brew install nginx-passenger-enterprise
You will be prompted to provide your download token the first time you install Passenger Enterprise through Homebrew.
Not using Homebrew? Please go back to the operating system selection menu and choose "Other" as operating system.
Step 4: enable the Passenger Nginx module and restart Nginx
Passenger is now installed, but it still needs to be enabled inside Nginx. Run
brew info nginx-passenger-enterprise and follow the instructions in the "Caveats" section:
$ brew info nginx-passenger-enterprise ... ==> Caveats ... To activate Passenger, ... (...more instructions that you should follow...)
When you are done following the instructions, restart Nginx:
$ sudo launchctl unload /usr/local/opt/nginx-passenger-enterprise/*.plist $ sudo launchctl load /usr/local/opt/nginx-passenger-enterprise/*.plist
Step 5: check installation
After installation, please validate the install by running
sudo /usr/local/bin/passenger-config validate-install. For example:
$ sudo /usr/local/bin/passenger-config validate-install * Checking whether this Phusion Passenger install is in PATH... ✓ * Checking whether there are no other Phusion Passenger installations... ✓
All checks should pass. If any of the checks do not pass, please follow the suggestions on screen.
Finally, check whether Nginx has started the Passenger core processes. Run
sudo /usr/local/bin/passenger-memory-stats. You should see Nginx processes as well as Passenger processes. For example:
$ sudo /usr/local/bin/passenger-memory-stats Version: 5.0.8 Date : 2015-05-28 08:46:20 +0200 ... ---------- Nginx processes ---------- PID PPID VMSize Private Name ------------------------------------- 12443 4814 60.8 MB 0.2 MB nginx: master process /usr/sbin/nginx 12538 12443 64.9 MB 5.0 MB nginx: worker process ### Processes: 3 ### Total private dirty RSS: 5.56 MB ----- Passenger processes ------ PID VMSize Private Name -------------------------------- 12517 83.2 MB 0.6 MB PassengerAgent watchdog 12520 266.0 MB 3.4 MB PassengerAgent server 12531 149.5 MB 1.4 MB PassengerAgent logger ...
If you do not see any Nginx processes or Passenger processes, then you probably have some kind of installation problem or configuration problem. Please refer to the troubleshooting guide.
Now that you have installed Passenger, you are ready to deploy your Python application on the production server!