Installing Passenger + Apache on a Linux/Unix production server
for Python apps + Red Hat 7 / CentOS 7 (with RPM)
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
Step 1: enable EPEL
Passenger requires EPEL. The instructions differ depending on whether you are on Red Hat or CentOS.
install EPEL package
$ if ! rpm -q epel-release; then sudo yum install -y yum-utils \ http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm; fi $ sudo yum-config-manager --enable epel
enable the 'optional' and 'extras' repositories
|Enable the optional and extras repositories (rhel-7-server-optional-rpms, rhel-7-server-extras-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 2: install Passenger packages
These commands will install Passenger + Apache module through Phusion's YUM repository.
# Install various prerequisites sudo yum install -y pygpgme curl # Add our el7 YUM repository sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo # Install Passenger + Apache module sudo yum install -y mod_passenger
Step 3: restart Apache
Now that the Passenger Apache module is installed, restart Apache to ensure that Passenger is activated:
$ sudo systemctl restart httpd
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.
Finally, check whether Apache has started the Passenger core processes. Run
sudo /usr/sbin/passenger-memory-stats. You should see Apache processes as well as Passenger processes. For example:
$ sudo /usr/sbin/passenger-memory-stats Version: 5.0.8 Date : 2015-05-28 08:46:20 +0200 ---------- Apache processes ---------- PID PPID VMSize Private Name -------------------------------------- 3918 1 190.1 MB 0.1 MB /usr/sbin/httpd ... ----- Passenger processes ------ PID VMSize Private Name -------------------------------- 12517 83.2 MB 0.6 MB Passenger watchdog 12520 266.0 MB 3.4 MB Passenger core 12531 149.5 MB 1.4 MB Passenger ust-router ...
If you do not see any Apache processes or Passenger processes, then you probably have some kind of installation problem or configuration problem. Please refer to the troubleshooting guide.
Step 5: update regularly
Apache updates, 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 Apache. Doing so will automatically restart Passenger too.
Now that you have installed Passenger, you are ready to deploy your Python application on the production server!