Install Latest PHP (7.4), PHP-FPM on CentOS 8 / RHEL 8
In this article, I’ll show you how to install the latest version of PHP with PHP-FPM on CentOS 8 / RHEL 8. Let’s start:
Table of Contents
Step 1 : Install Repositories
To install the latest PHP, we have to add two repositories on our server. The first one is the EPEL repository:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmThe second one is the Remi repository. Mainly we need this one. Remi repo requires EPEL repo.
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpmStep 2 : Install dnf-utils Package
Run this command to install dnf-utils:
sudo dnf install dnf-utilsStep 3 : Install PHP with PHP-FPM
See all available PHP version:
sudo dnf module list phpYou’ll find PHP 7.2, 7.3, and 7.4 versions. Let’s install PHP 7.4 :
sudo dnf module install php:remi-7.4Now install all necessary PHP modules including PHP-FPM:
sudo dnf install -y php-fpm php-cli php-common php-zip php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdoTo check the installed version of PHP, run this:
php -vStep 4 : Configure PHP-FPM
Open php.ini file:
sudo nano /etc/php.iniand add this line to the configuration file:
cgi.fix_pathinfo=0Save and close the file. Next, open www.conf file:
sudo nano /etc/php-fpm.d/www.confNow find user and group and change their values to your username. I’m going to setup for nginx.
user = nginx
group = nginxNow find listen.owner and listen.group and change their values to your username too.
listen.owner = nginx
listen.group = nginxSave & close the file and start the PHP processor by typing:
sudo systemctl start php-fpmEnable php-fpm to start on boot:
sudo systemctl enable php-fpmNow restart web-server:
# nginx
sudo systemctl restart nginx
# apache
sudo systemctl restart httpdStep 5 : More Info
The Nginx virtual host directive for PHP-FPM:
server {
# more config
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}These are some useful PHP-FPM commands:
sudo systemctl stop php-fpm
sudo systemctl restart php-fpm
sudo systemctl status php-fpmMd Obydullah
Software Engineer | Ethical Hacker & Cybersecurity...
Md Obydullah is a software engineer and full stack developer specialist at Laravel, Django, Vue.js, Node.js, Android, Linux Server, and Ethichal Hacking.