Installing Passenger
Enterprise Linux 9: Red Hat, CentOS, Rocky, Alma (with RPM)
Relevant selection for this article:
No Amazon Linux RPMs
Our RPM repository may not be used with Amazon Linux. Amazon Linux is too different from Enterprise Linux. If you are on Amazon Linux, please go back to the operating system selection menu and select "Other / OS independent (generic installation method)".
Table of contents
- Loading...
Step 1: enable EPEL
The instructions differ depending on whether you are on Red Hat or another Enterprise Linux. The second step is only necessary on Red Hat.
Step 1: install EPEL package |
Passenger requires EPEL.
$ sudo dnf install -y dnf-utils $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(< /etc/redhat-release tr -dc '0-9.'|cut -d \. -f1).noarch.rpm $ sudo dnf config-manager --enable epel $ sudo dnf clean all && sudo dnf update -y |
Step 2 (RHEL only): enable the 'optional' repository |
Enable the optional repository (rhel-9-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.
The following commands may be helpful, but are not thoroughly tested.
$ sudo subscription-manager register --username $RHN_USERNAME --password $RHN_PASSWORD --auto-attach $ sudo subscription-manager repos --enable rhel-9-server-optional-rpms |
Step 2: repair potential system issues
These commands will fix common issues that prevent dnf from installing Passenger
# Ensure curl and nss/openssl are sufficiently up-to-date to talk to the repo
sudo dnf update -y
date
# if the output of date is wrong, please follow these instructions to install ntp
sudo dnf -y install chrony
sudo systemctl enable chronyd
sudo firewall-cmd --permanent --add-service=ntp
sudo firewall-cmd --reload
sudo systemctl restart chronyd
Step 3: install Passenger packages
These commands will install Passenger dynamic Nginx module through Phusion's RPM repository.
If you want to use our packaged Nginx module, you must use your distro's provided Nginx package. If for example you have the repo provided by NGINX setup, you will instead need to compile a dynamic module compatible with that Nginx.
# Install various prerequisites
sudo dnf install -y curl
# Add our el9 RPM repository
sudo curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
# Install Passenger dynamic Nginx module
sudo dnf module enable -y nginx:$(sudo dnf module list nginx | cut -d ' ' -f 2 | grep -Ee '^[0-9\.]+$' | sort -V | tail -1)
sudo dnf install -y nginx-mod-http-passenger || { sudo dnf config-manager --enable cr && sudo dnf install -y nginx-mod-http-passenger ; }
Step 4: restart Nginx
Now that the Passenger Nginx module is installed, restart Nginx to ensure that Passenger is activated:
$ sudo systemctl restart nginx
Step 5: 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 Nginx has started the Passenger core processes. Run sudo /usr/sbin/passenger-memory-stats
. You should see Nginx 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 ... ---------- 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.
Step 6: update regularly
Nginx updates, Passenger updates and system updates are delivered through the dnf/yum package manager regularly. You should run the following command regularly to keep them up to date:
$ sudo dnf update
After an update, you should restart Nginx. Doing so will automatically restart Passenger too.