IFI Techsolutions

Installation of Nginx MySQL and PHP in centos 8

Author – Vivek Chaugule, Cloud Engineer LEMP is a variation of the ubiquitous LAMP stack used for developing and deploying web applications. Traditionally, LAMP consists of Linux, Apache, MySQL, and PHP. Due to its modular nature, the components can easily be swapped out. With LEMP, Apache is replaced with the lightweight yet powerful Nginx. LEMP is […]

Author – Vivek Chaugule, Cloud Engineer

LEMP is a variation of the ubiquitous LAMP stack used for developing and deploying web applications. Traditionally, LAMP consists of Linux, Apache, MySQL, and PHP. Due to its modular nature, the components can easily be swapped out. With LEMP, Apache is replaced with the lightweight yet powerful Nginx.

LEMP is more suitable for Low End Boxes and cheap VPS machines, because it consumes far less resources than the LAMP stack (even under heavy load) and is 2.5 times faster according to benchmarks. We are going to install MariaDB instead of MySQL as it is much faster, but still fully compatible with the original MySQL.

Linux: –

An open source Unix-like operating system provides the base for the stack components. Many distributions include package management systems that make installing the desired applications easy. However, these repository versions will generally not be the most current. Two of the most commonly used Linux distributions in LEMP stacks are Debian and Ubuntu.

Nginx: –

Nginx is an open source reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols. It also functions as a load balancer, HTTP cache, and web server (origin server). It has a strong focus on high concurrency, high performance and low memory usage. The HTML5 Boilerplate project has sample server configuration files to improve performance and security.

MySQL: –

MySQL is the second most widely used open source relational database management system. A community-developed fork, MariaDB, is led by the original developers. It aims to be a drop-in replacement.

PHP: –

PHP is a server-side scripting language designed for web development. The scripting role can also be filled with Python or Perl. Servers such as Gunicorn or uWSGI can be used in conjunction with Nginx to serve these applications.

Prerequisites:-

To follow this guide, you’ll need access to a CentOS 8 server as a sudo user.

 

1. Install Nginx

Install the nginx package with:

#sudo dnf install nginx

After the installation is finished, run the following command to enable and start the server:

#sudo systemctl start nginx

Now you can test if the server is up and running by accessing your server’s public IP address or domain name from your web browser. You’ll see a page like this:

2. Install MySQL Server

We’ll now install MariaDB, a community-developed fork of the original MySQL server by Oracle. To install this software, run:

#sudo dnf install mariadb-server

When the installation is finished, enable and start the MariaDB server with:

#sudo systemctl start mariadb

Apply security on newly installed MySQL server. This will also prompt you to change the temporary password with a new password.

# sudo mysql_secure_installation

Change the password for root?   – y

Remove anonymous users?   – y

Disallow root login remotely?    – y

Remove test database and access to it?    – y

Reload privilege tables now?   – y

MySQL has been installed. Next we will install php

 

3. Install PHP

To install the php-fpm and php-mysql packages, run:

#sudo dnf install php-fpm php-mysqlnd

Now open the /etc/php-fpm.d/www.conf configuration file using nano or your editor of choice:

#sudo nano /etc/php-fpm.d/www.conf

Look for the user and group directives. If you are using nano, you can hit CTRL+W to search for these terms inside the open file. Make sure to change both values from apache to nginx:

/etc/php-fpm.d/www.conf

; RPM: apache user chosen to provide access to the same directories as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

Save and close the file when you’re done editing.

To enable and start the php-fpm service, run:

#sudo systemctl start php-fpm

Finally, restart the Nginx web server so that it loads the configuration files created by the php-fpm installation:

#sudo systemctl restart nginx

 

4. Test PHP with Nginx

Create a new PHP file called info.php at the /usr/share/nginx/html directory:

#nano /usr/share/nginx/html/info.php

The following PHP code will display information about the current PHP environment running on the server:

/usr/share/nginx/html/info.php

<?php

phpinfo();

Copy this content to your info.php file, and don’t forget to save it when you’re done.

Now we can test whether our web server can correctly display content generated by a PHP script. Go to your browser and access your server hostname or IP address, followed by /info.php:

http://server_host_or_IP/info.php

You’ll see a page similar to this:

 

Leave a Reply

Subscribe to our knowledge library.

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare