Atlantic.Net Blog

How to Install LEMP (Nginx, MySQL, PHP) on Centos 6.7

Jose Velazquez
by Atlantic.Net (71posts) under Cloud Hosting
NGINX Car by Walker Cahall

NGINX Car by Walker Cahall

Verified and Tested 08/17/15


In this How-To, we will walk you through the LEMP install on your CentOS 6.7 Server. LEMP is a software bundle that is made up of four parts (Linux, Nginx, MySQL, and PHP). This how-to will be using CentOS 6.7 which was released on August 7th, 2015, Nginx version 1.0.15, MySQL version 5.1.73 and php-fpm using PHP version 5.3.3.


A server with CentOS 6.7 already installed. If you do not have a CentOS 6.7 server, you can get a reliable cloud SSD server from Atlantic.Net and be up and running in under 30 seconds!

Installing EPEL in CentOS 6.7 for LEMP

In this how to we are going to install the Fedora epel release to quickly install Nginx. Run the following command to install EPEL:

sudo yum install epel-release

Installing and Configuring NGINX in CentOS 6.7 for LEMP

Install NGINX with the following command:

sudo yum install nginx

Start the NGINX service with the following command:

sudo /etc/init.d/nginx start

Configure NGINX to start when the system is rebooted:

sudo chkconfig nginx on

You will now have NGINX installed on your server. This can be verified by typing in the following with your IP ADDRESS on your browser. Also, all configuration files are provided on the page.

We can now verify Apache is working by opening your browser and entering the URL http://your-server's-address. you should get a blue Nginx test page similar to the image below.

Note: If you do not know your IP address, run the following command:

sudo ip addr show eth0
An example of running the command: ip addr show eth0 and getting for the IP address.

An example of running the command: ip addr show eth0 and getting for the IP address.

In our example we would put into our browser’s address bar.


Sample Nginx Default Webpage

Sample Nginx Default Webpage

Installing and Configuring MySQL on CentOS 6.7 for LEMP

Install MySQL with the following command to begin the install:

sudo yum install mysql-server

Start the service with the following command:

sudo service mysqld start

Set root MySQL password with the following command:

sudo /usr/bin/mysql_secure_installation

Note: You will be prompted with a series of questions. Just type Y for yes on all of them, see the screen shot below:

Sample my_secure_installation output.

Sample my_secure_installation output.

Configure MySQL to start when the system is rebooted:

sudo chkconfig mysqld on


Installing and Configuring php-fpm on CentOS 6.7 for LEMP

Install php-fpm with the following command:

sudo yum install php-fpm php-mysql

Start the php-fpm service with the following command:

sudo service php-fpm restart

Make sure php-fpm starts on boot with the following command:

sudo chkconfig php-fpm on

Using your favorite editor, edit the file /etc/php-fpm.d/www.con  and change user and group from apache to nginx. It should look similar to the block below.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

Now we need to make some changes to the Nginx configuration file so that php-fpm works correctly with Nginx. Using your favorite editor, edit the file /etc/nginx/conf.d/default.conf and carry out the following changes or copy the following block below into your conf file.

1) Add the index.php to the index location

2) Change the root location to /usr/share/nginx/html

3) Uncomment the Pass PHP scripts to FastCGI section.

4) Change the fastcgi_param  SCRIPT_FILENAME  to use /usr/share/nginx/html$fastcgi_script_name

# The default server
server {
    listen       80 default_server;
    server_name  _;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;

    # proxy the PHP scripts to Apache listening on
    #location ~ \.php$ {
    #    proxy_pass;

    # pass the PHP scripts to FastCGI server listening on
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #location ~ /\.ht {
    #    deny  all;


Create a test PHP file in the following directory with the following command:

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

Insert the following code in the space then save and exit:


Restart apache so all the changes take effect:

sudo service nginx restart

Test your page in your browser with the following hyperlink changed with yourIP address:

Sample info.php

Sample info.php

You should removed the info.php file as it could be used against you by an attacker. Delete it with the following command:

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

Congratulations! You have just installed LEMP on your CentOS 6.7 Server. Thank you for following along in this How-To! Check back with us for any new updates and browse our scalable Cloud Hosting solutions for any sized business.

Get started with 12 months of free cloud VPS hosting

Free Tier includes:
G2.1GB Cloud VPS Server Free to Use for One Year
50 GB of Block Storage Free to Use for One Year

New York, NY

100 Delawanna Ave, Suite 1

Clifton, NJ 07014

United States

San Francisco, CA

2820 Northwestern Pkwy,

Santa Clara, CA 95051

United States

Dallas, TX

2323 Bryan Street,

Dallas, Texas 75201

United States

Ashburn, VA

1807 Michael Faraday Ct,

Reston, VA 20190

United States

Orlando, FL

440 W Kennedy Blvd, Suite 3

Orlando, FL 32810

United States

Toronto, Canada

20 Pullman Ct, Scarborough,

Ontario M1X 1E4


London, UK

14 Liverpool Road, Slough,

Berkshire SL1 4QZ

United Kingdom


We use cookies for advertising, social media and analytics purposes. Read about how we use cookies in our updated Privacy Policy. If you continue to use this site, you consent to our use of cookies and our Privacy Policy.