2014-08-13

LEMP is a combination of operating system and open-source software stack. The acronym LEMP is derived from first letters of Linux, Nginx HTTP Server, MariaDB database, and PHP/Perl/Python.

In this tutorial, let us see how to setup LEMP server on RHEL/CentOS/Scientific Linux 7.

My testbox hostname and IP address are server.unixmen.local and 192.168.1.101/24 respectively.

Install Nginx

Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server written by Igor Sysoev. According to netcraft web server survey 14.08% web sites are served by Nginx.

Nginx will not be found in the official CentOS repository, so let us install EPEL repository first. To install EPEL repository refer the following link.

Install EPEL Repository On RHEL/CentOS/Scientific Linux 7

Now, install Nginx with following command:

Start Nginx and make it to start automatically on every reboot:

Stop Apache or any other web servers if you have any:

Allow Nginx server through your firewall/router if you want to access the web server from other systems:

Now point your web browser with “http://ip-address″. The test page of nginx will open.



Nginx web server has been installed now.

Configure Nginx

Open the file /etc/nginx/nginx.conf and set the worker_processes (i.e No. of CPU’s in your system). To see the no. of CPU’s, use the command “lscpu”.

In my case it’s “1″. So I set this as ’1′:

Scroll down and make the changes as shown below.

Save and close the file. Restart Nginx service:

Install MariaDB

MariaDB is a drop in replacement for MySQL. It is a robust, scalable and reliable SQL server that comes rich set of enhancements.

Now, start installing MariaDB as shown below:

Start MariaDB service and let it to start automatically on every reboot:

Set MySQL root password

By default, MySQL root password is empty. So, to prevent unauthorized access to MySQL, let us set root user password. Enter the following command to setup mysql root user password:

Install PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely used open-source general purpose scripting language that is especially suited for web development and can be embedded into HTML.

Install PHP with following command:

Start php-fpm service and let it to start automatically on every reboot:

Configure PHP

Open up /etc/php.ini file in any editor. Find the line cgi.fix_pathinfo and change the value from 1 to 0 (zero):

Open up the file /etc/php-fpm.d/www.conf and change the user and group values from apache to nginx:

Save and close the file. Restart php-fpm service:

Test PHP

Create a sample “testphp.php” file in web root folder and append the lines as shown below:

Save and close the file. Restart Nginx service:

Navigate to  http://server-ip-address/testphp.php. It will display all the details about PHP such as version, build date and commands etc.



If you want to install all PHP modules, enter the command yum install php* -y and restart the Nginx service. To verify for the modules, open up your web browser and navigate to http://server-ip-address/testphp.php. You will then see all PHP modules.

PHP-FPM listens localhost (127.0.0.1) via port 9000 by default. If you want to make PHP-FPM to listen to unix socket, follow the steps below. Edit file /etc/php-fpm.d/www.conf,

Find the following line:

Change the above line as shown below:

Then edit nginx configuration file:

Find the following line:

And, change it as shown below:

Save and close the file. Restart nginx and php-fpm service.

That’s it. Your LEMP server is ready to use.

Cheers!!

---------------------------------------------------------------------
Install LEMP Server (Nginx, MariaDB, PHP) On CentOS 7

Show more