InMotion Hosting Support Center

This guide will show you the steps needed to install a basic LEMP stack on your Non-cPanel server running CentOS. All the commands shown will need to be run as root on your server via SSH.

Installing LEMP Stack

  1. Connect to your server as the root user via SSH.
  2. Before installing we need to ensure your packages and repositories are up to date by running the following command. You will be prompted to continue after it has finished checking for updates by pressing y (yes) or n (no), Hit y and then enter to continue.

    yum update


  3. NGINX uses port 80 for non-SSL traffic and 443 for SSL traffic. Both of these ports need to be open in the firewall. Run the following three commands to open them.

    service firewalld start
    firewall-cmd --permanent --zone=public --add-service=http
    firewall-cmd --permanent --zone=public --add-service=https
    firewall-cmd --reload


  4. Install NGINX by running the following command, You will be prompted to continue, Press y for yes and hit enter.

    yum install nginx


    After the install has finished you need to start the service by running the command below.

    systemctl start nginx


  5. Installing MariaDB(MySQL), MariaDB is the recommended service for MySQL currently included in the CentOS repositories.

    yum install mariadb-server mariadb


    Once installed start the service by running the command below.

    systemctl start mariadb


    The default install of MariaDB contains settings and users for testing that are not secure, To secure the installation run the command below. You will be asked if you want to set a root password for MariaDB, You should press y and hit enter to continue, You will then be prompted to set a password for MariaDB, Ensure this password is set to a strong password. After setting the password you will get more yes or no prompts, Just hit enter until you have completed the prompts. You will see the message "installation should now be secure. Thanks for using MariaDB!" When complete.

    mysql_secure_installation


  6. Install PHP and some common extensions for PHP by running the following command. You may be prompted to press y and enter again.

    yum install php70u php70u-mcrypt php70u-mbstring php70u-mysqlnd php70u-ioncube-loader php70u-soap php70u-common php70u-tidy php70u-pecl-imagick php70u-pspell php70u-pdo php70u-bcmath php70u-cli php70u-pear php70u-enchant php70u-xml php70u-pspell php70u-pear php70u-enchant php70u-xml php70u-pspell php70u-fpm php-70fpm


  7. Once PHP has been installed we need to configure it for NGINX. To do this you will need to open /etc/php-fpm.d/www.conf:
    Find the line that says "listen =" and change the line to look like the entry below.

    listen = /var/run/php-fpm/php-fpm.sock


    Next find the lines "listen.owner" and "listen.group" and change them to match the entry below.

    listen.owner = nginx listen.group = nginx


    Finally find the lines with "user" and "group" and change them to match the entry below.

    user = nginx group = nginx


    Now that we have configured PHP-FPM we can start it by running the command below.

    systemctl start php-fpm


  8. We now need to configure NGINX to use PHP to proccess PHP files using PHP-FPM. To do so you will need to open the file /etc/nginx. Once opened you will need to find the section that starts with "server {" and make it match the configuration below

    server { listen 80; server_name domain_name_or_IP; root /usr/share/nginx/html; index index.htm index.html index.php; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

    Once you have made the changes you need to restart NGINX using the command below.

    service nginx restart


  9. Now we need to test PHP to ensure its working, You can run the following command to place a PHP info page in your document root.

    echo "<?php phpinfo();" > /usr/share/nginx/html/phpinfo.php


    After running that command browse to http://yourservers_IP/phpinfo.php. You should receive a page showing your PHP configuration information.
  10. To ensure your services start automatically on reboot we need to enable them in Systemd(The software that manages services by default on CentOS). Run the following commands.

    systemctl enable mariadb.service
    systemctl enable nginx
    systemctl enable php-fpm



Congratulations, You should now have a working LEMP stack.

Was this article helpful?

Related Questions

Here are a few questions related to this article that our customers have asked:
Ooops! It looks like there are no questions about this page.
Would you like to ask a question about this page? If so, click the button below!
Ask a Question

Support Center Login

Our Login page has moved, Click the button below to be taken to the login page.

Post a Comment

Name:
Email Address:
Phone Number:
Comment:
Submit

Please note: Your name and comment will be displayed, but we will not show your email address.

0 Questions & Comments

Post a comment

Back to first comment | top

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!