PHP is an open-source programming language widely for web development, created by Rasmus Lerdorf. It is an HTML-embedded scripting language for creating dynamic web sites.
CentOS 8 / RHEL 8 comes with PHP v7.2 by default.
In this post, we will see how to install PHP 7.4 / 7.3 on CentOS 8 / RHEL 8.
THIS DOCUMENT IS ALSO AVAILABLE FOR
Add Remi Repository
Contents
Remi, a third-party repository which offers multiple versions of PHP (7.4 / 7.3 / 7.2) for Red Hat Enterprise Linux.
Remi repository requires EPEL repository be enabled on your system.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
To enable the Remi repository on your system, install the Remi repository auto-configuration package using the below command.
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Output:
CentOS-8 - AppStream 1.7 MB/s | 6.3 MB 00:03 CentOS-8 - Base 3.0 MB/s | 7.9 MB 00:02 CentOS-8 - Extras 5.5 kB/s | 2.1 kB 00:00 CentOS-8 - PowerTools 916 kB/s | 1.8 MB 00:02 Extra Packages for Enterprise Linux 8 - x86_64 1.9 MB/s | 5.2 MB 00:02 Google Cloud SDK 6.6 MB/s | 29 MB 00:04 Google Compute Engine 1.7 kB/s | 5.8 kB 00:03 remi-release-8.rpm 13 kB/s | 20 kB 00:01 Dependencies resolved. =================================================================================================================== Package Arch Version Repository Size =================================================================================================================== Installing: remi-release noarch 8.0-4.el8.remi @commandline 20 k Transaction Summary =================================================================================================================== Install 1 Package Total size: 20 k Installed size: 14 k Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : remi-release-8.0-4.el8.remi.noarch 1/1 Verifying : remi-release-8.0-4.el8.remi.noarch 1/1 Installed: remi-release-8.0-4.el8.remi.noarch Complete!
List the available PHP module stream.
dnf module list php
You should see below output.
CentOS-8 - AppStream Name Stream Profiles Summary php 7.2 [d] common [d], devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 8 - x86_64 Name Stream Profiles Summary php remi-7.2 common [d], devel, minimal PHP scripting language php remi-7.3 common [d], devel, minimal PHP scripting language php remi-7.4 common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Install PHP 7.4 on CentOS 8 / RHEL 8
Enable php:remi-7.4 module to install PHP 7.4.
dnf module enable php:remi-7.4 -y
Output
Last metadata expiration check: 0:03:03 ago on Sat 11 Jan 2020 02:41:27 PM UTC. Dependencies resolved. =================================================================================================================== Package Arch Version Repository Size =================================================================================================================== Enabling module streams: httpd 2.4 php remi-7.4 Transaction Summary =================================================================================================================== Complete! Switching module streams does not alter installed packages (see 'module enable' in dnf(8) for details)
Install PHP 7.4 on CentOS 8 / RHEL 8 with dnf command.
dnf install -y php php-cli php-common
Install PHP 7.3 on CentOS 8 / RHEL 8
Enable php:remi-7.3 module to install PHP 7.3.
dnf module enable php:remi-7.3 -y
Output:
Last metadata expiration check: 0:03:03 ago on Sat 11 Jan 2020 02:41:27 PM UTC. Dependencies resolved. =================================================================================================================== Package Arch Version Repository Size =================================================================================================================== Enabling module streams: httpd 2.4 nginx 1.14 php remi-7.3 Transaction Summary =================================================================================================================== Complete! Switching module streams does not alter installed packages (see 'module enable' in dnf(8) for details)
Install PHP 7.3 on CentOS 8 / RHEL 8 with dnf command.
dnf install -y php php-cli php-common
Check PHP Version
Once you have installed PHP, check the PHP version with the following command.
php -v
Output:
PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.1, Copyright (c), by Zend Technologies
Install PHP-FPM
If you are setting up LEMP stack on RHEL 8, you might want to install php-fpm.
dnf install -y php-fpm
Install PHP Extensions
PHP extensions are compiled libraries which enables specific support for your code.
To have MySQL support on your code, you can install php-mysqlnd package.
dnf install -y php-mysqlnd
Once you have installed MySQL extension, you can use the below command to verify it.
php -m | grep -i mysql
Output:
mysqli
mysqlnd
pdo_mysql
PHP Extensions for WordPress
The following extensions are required to install and run WordPress on your RHEL 8 machine. WordPress recommends PHP v7.3 for the installation.
dnf install -y php-dom php-simplexml php-ssh2 php-xml php-xmlreader php-curl php-date php-exif php-filter php-ftp php-gd php-hash php-iconv php-json php-libxml php-pecl-imagick php-mbstring php-mysqlnd php-openssl php-pcre php-posix php-sockets php-spl php-tokenizer php-zlib
PHP Extensions for Joomla
The following extensions are required to install and run Joomla on your RHEL 8 machine. Joomla requires PHP v7.1 and above.
dnf install -y php-mysqlnd php-zlib php-xml php-pear php-json php-mcrypt php-pecl-imagick
PHP Extensions for Drupal
The following extensions are required to install and run Joomla on your RHEL 8 machine. Drupal requires PHP v7.1 and above.
dnf install -y php-mysqlnd php-date php-dom php-filter php-gd php-hash php-json php-pcre php-pdo php-session php-simplexml php-spl php-tokenizer php-xml
Conclusion
That’s All. I hope you have learned how to install PHP 7.4 / 7.3 on CentOS 8 / RHEL 8. Please share your feedback in the comments section.