Installing Passenger + Standalone on an AWS production server
for Node.js apps + Red Hat 6 / CentOS 6 (with RPM)

This page describes the installation of Passenger through the following operating system or installation method: Red Hat 6 / CentOS 6 (with RPM). Not the configuration you are looking for? Go back to the operating system / installation method selection menu.

No Amazon Linux RPMs

Our YUM repository may not be used with Amazon Linux. Amazon Linux is too different from RHEL and CentOS. If you are on Amazon Linux, please go back to the operating system menu and select "Other / OS independent (generic installation method)".

On this page, we will install Passenger. After installing Passenger we can begin with deploying the app.

Table of contents

  • Loading...

Step 1: upgrade your kernel, or disable SELinux

The first thing you need to do is to check on two things:

  1. Which kernel version are you running? You can find out by running uname -r.
  2. Is SELinux enabled? You can find out by running grep SELINUX /etc/selinux/config. If it says "enforcing" or "permissive", then SELinux is enabled. If it says "disabled", then SELinux is disabled.

If SELinux is enabled, then Passenger requires kernel >= 2.6.39. If your kernel is not recent enough, then there are two things you can do:

  1. Disable SELinux completely. Edit /etc/selinux/config, set SELINUX=disabled and reboot. Note that merely setting SELinux to permissive mode is not enough.


  2. Upgrade your kernel to at least 2.6.39.

If your kernel version was already at least 2.6.39, or if SELinux was already disabled, then you can skip to the next step.

Step 2: enable EPEL

Passenger requires EPEL. The instructions differ depending on whether you are on Red Hat or CentOS.

Red Hat

Step 1:
install EPEL package

If your system is 64-bit:

$ if ! rpm -q epel-release; then sudo yum install -y yum-utils \; fi
$ sudo yum-config-manager --enable epel

If your system is 32-bit:

$ if ! rpm -q epel-release; then sudo yum install -y yum-utils \; fi
$ sudo yum-config-manager --enable epel
Step 2:
enable the 'optional' repository
Enable the optional repository (rhel-6-server-optional-rpms). This can be done by enabling the RHEL optional subchannel for RHN-Classic. For certificate-based subscriptions see Red Hat Subscription Management Guide.


$ sudo yum install -y epel-release yum-utils
$ sudo yum-config-manager --enable epel

Step 3: install Passenger packages

These commands will install Passenger through Phusion's YUM repository.

# Install various prerequisites
sudo yum install -y pygpgme curl

# Add our el6 YUM repository
sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo

# Install Passenger
sudo yum install -y passenger

Step 4: check installation

After installation, please validate the install by running sudo /usr/bin/passenger-config validate-install. For example:

$ sudo /usr/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.

Step 5: update regularly

Passenger updates and system updates are delivered through the YUM package manager regularly. You should run the following command regularly to keep them up to date:

$ sudo yum update

After an update, you should restart all your Passenger instances so that the updates take effect.

Next step

Now that you have installed Passenger, you are ready to deploy your Node.js application on the production server!

Continue: Deploy app »