LEMP stack is a group of open-source software that is typically installed together to enable a server to host dynamic websites and web apps. LEMP stands for Linux OS, with the Nginx (pronounced like "Engine-X") web server, Data store in a MySQL or MariaDB database, and dynamic content is processed by PHP.
Here at LinuxAPT, as part of our Server Management Services, we regularly help our Customers to perform related Nginx queries.
In this context, we shall look into how to install LEMP stack on CentOS 7. You will see the steps to do this.
1. How to Install NGINX on CentOS
Before proceeding with this Installation procedure, ensure that you are logged into the Server as a user with sudo privileges.
Nginx is not available in default CentOS 7 repositories so installation is pretty easy. To install the package run the following command:
$ sudo yum install httpd
Once the installation is finished, you need to start and enable the Apache service by typing:
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
You can confirm installation by checking the status of service by below command:
$ sudo systemctl status httpd
2. Install MariaDB
Now we are going to install MariaDB on your CentOS system. To install type the following command:
$ sudo yum install mariadb-server
If you want to install MySQL instead of MariaDB, check this Guide on How to Install MySQL on CentOS 7.
When the MariaDB installation completed, you should start and enable the service with:
$ sudo systemctl start mariadb.service
$ sudo systemctl enable mariadb.service
Also, check the status of service by typing:
$ sudo systemctl status mariadb.service
3. Install PHP
By default, CentOS 7 ships with PHP version 5.4 so we are going to use Remi repository to install PHP 7.2.
Run the following command to install the Remi repository to your system:
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Now you have to install yum-utils package and enable remi repository on your CentOS system using below command:
$ sudo yum install yum-utils
$ sudo yum-config-manager --enable remi-php72
Next, install the PHP and required extensions along with it by typing:
$ sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql
You should now restart the Apache service to take effect. Use below command to restart Apache service:
$ sudo systemctl restart httpd
You need to create a directory under the web root /var/www/html with your domain name.
Configuration file for all domains are stored at /etc/nginx/conf.d directory.
So we will create configuration file for each domain in this folder. This configuration files are know as Nginx Server blocks and you can refer this Guide How to Set Up Nginx Server Blocks on CentOS to create these files and add the below lines to it:
server {
# . . . other code
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;
}
}
Now To take effect of configuration changes you need to reload PHP and Nginx services. Type below command to do it:
$ sudo systemctl restart php-fpm
$ sudo systemctl reload nginx
Once it done also check status of Nginx by typing following:
$ sudo nginx -t
If everything is okay then it will show output as following :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
You can Create a info.php file at /var/www/html/info.php and add below lines to it and save:
<?php
phpinfo();
?>
Now, open your favorite browser and open info.php file with your server public ip address as given below:
http://SERVER_IP_ADDRESS/info.php
If it shows PHP information page then your installation is successful.
This article covers how to install LEMP stack on CentOS 7. LEMP stands for the Linux operating system, with the ENginx web server (which replaces the Apache component of a LAMP stack). The site data is stored in a MySQL-based database, and dynamic content is processed by PHP.
A LEMP software stack is basically a group of open source software that is typically installed together to enable a server to host dynamic websites and web apps.
To install Nginx on CentOS:
1. Add the CentOS 7 EPEL repository, run the following command:
$ sudo yum install epel-release
2. Now that the EPEL repository is installed on your server, install Nginx using the following yum command:
$ sudo yum install nginx
3. Once the installation is finished, start the Nginx service with:
$ sudo systemctl start nginx