Prerequsities
The newly installed system’s recommended to follow initial server setup. Shell access to the CentOS 8 system with sudo privileges account.
Step 1 – Install Nginx
The Nginx packages are available under the default AppStream repository. You can simply update the DNF cache and install Nginx web server packages using the following commands. After installation of packages starts Nginx service, Also enable Nginx service to auto-start on system boot.
Step 2 – Install PHP with PHP-FPM
The Remi repository contains the latest PHP packages for the CentOS 8 Linux system. So first of all, you need to add the REMI repository to your system. Just execute the following command to add the repository. Then enable the required DNF module for PHP installation. Here we are enabling the module for installing PHP 7.4. You can change this to PHP 7.3 or PHP 7.2 as per your requirements. Now, install the PHP on your system. As we are going to use FastCGI Process Manager (FPM) for this setup. So install the php-fpm package as well. You may also require some more PHP modules, So install them before going next. After completing PHP installation enable PHP-FPM service and start it. Make sure the php-fpm service is running.
Step 3 – Configure PHP-FPM
At this step, you have installed all the required packages. Let’s start the configuration process. First, edit PHP-FPM configuration file: Make the changes like below. The latest versions of Nginx can connect to the socket using a proxy. So make sure listen is set to a socket file. Then set user and group the same as Nginx server using. If you need to connect FPM from a remote system change listen.allowed_clients to LAN IP instead of 127.0.0.1.
After making changes restart the php-fpm service to apply changes.
Step 4 – Create Nginx Server Block
Now, create a server block in Nginx for your domain and configure it to use php-fpm for processing PHP files. Create a server block file and edit in a text editor: Now added proxy configuration using a socket file. Also configured all PHP script to use fpm handler for execution.
Save the server block configuration file and restart the Nginx service to apply changes.
Step 5 – Enable Firewall Rules
Your server is ready to serve the application. If there is a firewall enabled on your system, make sure HTTP ports are open to access from remote systems. The following commands will open the required ports for you.
Step 6 – Test Setup
All done. To test the environment, create a PHP script with phpinfo() function. Place this file to your server document root. Use the below command to do this. Then access info.php using server IP address (for default VirtualHost) for your configured domain in the Nginx server block.
Slide down the page and check value of $_SERVER[‘SERVER_SOFTWARE’] under PHP Variables section. This will show you the Web server name running on.
Conclusion
You have successfully configured an Nginx with PHP-FPM on your CentOS 8 or RHEL 8 Linux system. You can now host a website from your server.