How to Install and Configure PHP 8 on Rocky Linux 9

PHP (Hypertext Preprocessor) is an open-source server-side scripting language used extensively in web development. To leverage its latest features and improvements, you can install PHP 8 on Rocky Linux 9. PHP is also a general-purpose language for creating APIs, dynamic websites, and server-side applications.

This article explains how to install and configure PHP 8 on Rocky Linux 9. You will add the required repositories, install the latest stable PHP 8 version, and set up PHP-FPM to process PHP scripts. After installation, you will test the setup to ensure PHP 8 is working.

Prerequisites

Before you begin, you need to:

  • Have access to a Rocky Linux 9 instance as a non-root sudo user.

Install the EPEL and Remi Repositories

Rocky Linux 9 includes PHP 8.1 and 8.2 in its default repositories. To install a newer, stable version, you must enable the Remi repository, which provides the latest PHP packages. The EPEL (Extra Packages for Enterprise Linux) repository is required as a dependency. Follow the steps below to install the EPEL and Remi repositories.

Update the server’s package information index.

Install the EPEL repository.

$ sudo dnf install epel-release -y

Install the Remi repository.

$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

Verify the installation of EPEL and Remi repositories.

$ dnf repolist | grep -E 'epel|remi'

Output:

epel                Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264 Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
remi-modular        Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe           Safe Remi's RPM repository for Enterprise Linux 9 - x86_64

Reset the PHP module to clear existing configurations.

$ sudo dnf module reset php -y

Install PHP 8 on Rocky Linux 9

With the required repositories enabled, follow the steps below to install PHP 8.4, the latest stable version, and the necessary extensions.

Enable the Remi repository for PHP 8.4

$ sudo dnf module enable php:remi-8.4 -y

Install PHP 8.4

$ sudo dnf install php php-cli -y

Install Necessary PHP Extensions.

$ sudo dnf install php-common php-mbstring php-xml php-curl php-zip php-opcache -y

Verify the PHP Installation.

Output:

PHP 8.4.5 (cli) (built: Mar 12 2025 01:55:56) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository  #StandWithUkraine
Zend Engine v4.4.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.5, Copyright (c), by Zend Technologies

Install PHP-FPM

PHP-FPM (FastCGI Process Manager) is a daemon that handles PHP scripts, improves performance, and increases scalability. It runs PHP applications with web servers like Nginx and Apache. Follow the steps below to install and configure PHP-FPM.

Install PHP-FPM.

$ sudo dnf install php-fpm -y

Start the PHP-FPM service.

$ sudo systemctl start php-fpm

Set PHP-FPM to start at system boot.

$ sudo systemctl enable php-fpm

Check PHP-FPM Status.

$ sudo systemctl status php-fpm

Output:

● php-fpm.service - The PHP FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; preset: disabled)
     Active: active (running) since Sun 2025-03-30 23:59:42 UTC; 20s ago
   Main PID: 74963 (php-fpm)
     Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0.00req/sec"
      Tasks: 6 (limit: 11059)
     Memory: 14.4M
        CPU: 62ms
     CGroup: /system.slice/php-fpm.service
             ├─74963 "php-fpm: master process (/etc/php-fpm.conf)"
             ├─74964 "php-fpm: pool www"
             ├─74965 "php-fpm: pool www"
             ├─74966 "php-fpm: pool www"
             ├─74967 "php-fpm: pool www"
             └─74968 "php-fpm: pool www"

Mar 30 23:59:42 test-server systemd[1]: Starting The PHP FastCGI Process Manager...
Mar 30 23:59:42 test-server systemd[1]: Started The PHP FastCGI Process Manager.

Test and Use PHP 8

Follow the steps below to verify and test your PHP 8 installation using the Apache web server. You will create a PHP information file to check the installation and ensure your server can process PHP scripts.

Install the Apache web server.

$ sudo dnf install httpd -y

Start the Apache service.

$ sudo systemctl start httpd

Enable Apache to start on Boot.

$ sudo systemctl enable httpd

Check the status of Apache.

$ sudo systemctl status httpd

Output:

● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; preset: disabled)
    Drop-In: /etc/systemd/system/httpd.service.d
             └─php-fpm.conf
     Active: active (running) since Mon 2025-03-31 00:00:38 UTC; 18s ago
       Docs: man:httpd.service(8)
   Main PID: 75202 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0; Requests/sec: 0; Bytes served/sec: 0 B/sec"
      Tasks: 177 (limit: 11059)
     Memory: 24.1M
        CPU: 79ms
     CGroup: /system.slice/httpd.service
             ├─75202 /usr/sbin/httpd -DFOREGROUND
             ├─75203 /usr/sbin/httpd -DFOREGROUND
             ├─75204 /usr/sbin/httpd -DFOREGROUND
             ├─75205 /usr/sbin/httpd -DFOREGROUND
             └─75206 /usr/sbin/httpd -DFOREGROUND

Mar 31 00:00:38 test-server systemd[1]: Starting The Apache HTTP Server...
Mar 31 00:00:38 test-server httpd[75202]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName'>
Mar 31 00:00:38 test-server systemd[1]: Started The Apache HTTP Server.
Mar 31 00:00:38 test-server httpd[75202]: Server configured, listening on: port 80

Add a rule to your firewall to allow HTTP traffic on port 80.

$ sudo firewall-cmd --permanent --add-service=http

Reload the firewall to make the changes effective.

$ sudo firewall-cmd --reload

Create a test file in the Apache web root directory.

$ sudo nano /var/www/html/info.php

Add the following PHP code to this file. It will display detailed information about your PHP installation.

Save and close the file.

Restart Apache.

$ sudo systemctl restart httpd

Access your server’s IP address using a web browser, such as Chrome, and load the /info.php URL path to view the PHP information page and confirm the installation of PHP 8.4.5.

http://SERVER-IP/info.php

PHP information page

Note: Replace 192.0.2.11 with the actual IP address of your Rocky Linux 9 instance in the above link.

Conclusion

You have installed PHP 8.4 on your Rocky Linux 9 instance and configured it to process PHP scripts using PHP-FPM. You also installed and set up an Apache web server to serve PHP applications and tested your installation by creating a PHP information file. Your server is now ready to run the latest stable version of PHP applications. To enhance security and performance, refer to the official PHP documentation.

Source: vultr.com

Create a Free Account

Register now and get access to our Cloud Services.

Posts you might be interested in: