Full Steps to Install WordPress on Nginx PHP7-fpm Ubuntu Server

WordPress Nginx Setup

Being a blogging that is well-known, WordPress has been used by hundreds thousands of users and having millions installations. Well, you knew that. Hence, I shall perhaps not explain more about WordPress. The objective that is main of guide is to tell you and many newbies out there on how to install WordPress, step by step with pictures, on an Ubuntu server with full LEMP stack which you have to do it manually since you have no hosting control on it. LEMP or LNMP stack stands for Linux, Nginx, MySQL and PHP. I have explained about how to build a ready-to-use Ubuntu server based on Nginx, MySQL, and PHP7 to host your website on it. I have also explained how to set up Nginx Server Blocks so it can host websites that are many domain names about it. This short article is merely a continuation of the articles that are previous


  1. A SSH customer like Bitvise or Putty and knowledge that is basic utilizing it.
  2. Basic understanding of typical Unix demand to SSH towards host.
  3. A host or VPS with at the very least 256MB of RAM (OpenVZ) but 512MB or higher is preferred if you work with KVM or Xen.
  4. Ubuntu 16.04 either 32-bit or 64-bit.
  5. About 30 mins of your energy.
  6. a sit down elsewhere or tea.

Confused on selecting which VPS provider to put together an Apache based server that is hosting? Read my recommended VPS providers or this list of top end that is low host providers. Quick suggestion: Digital Ocean, Atlantic.net or Ramnode.

In this guide i’m making use of a 512MB RAM Cloud VPS from Atlantic operating Ubuntu 16.04 X that is**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************)(. Unfortunately, this plan is not available any more – as what I can see at their website. However, Atlantic.net Provides solid and reliable servers so having the cloud server plan that is smallest (1GB RAM) is truly well worth is cost which is really suitable to host your manufacturing host.


  1. Provision the Ubuntu host.
  2. Install complete LEMP about it. Read – just how to provision a cloud host at Atlantic.net and exactly how to put in complete LEMP stack on Ubuntu.
  3. Do keep in mind to constantly change domain.tld or servermom.net with your personal domain title and replace x.x.x.x along with your host ip.
  4. Setup Nginx Server Block for the domain. Read – just how to include brand new web site and setup Nginx Server Block.
  5. In this guide i merely login as root. But is preferred to login as another individual with sudo privilege. Study – fundamental Ubuntu Setup to construct a production host. For that reason, please include sudo in almost every and every demand.

I’ve explained how exactly to install Nginx, PHP7, and MySQL on my past post.

Therefore, we assumed at this time you’ve got an Ubuntu host with Nginx, PHP7, and MySQL installed along with you’ve got produced Nginx Server Block for the domain. Let’s progress..

Preparing Database

Step 1 – it yet, login to your server as root or as a user with root privilege if you haven’t done. Ensure you add sudo before any demand below if you should be signing in as sudoer.

Step 2 – Now login to MySQL as root individual password that is using have actually defined early in the day (see my past guide on complete LEMP setup).

mysql -u root -p

Login to MySQL

Step 3 – create database that is new issuing demand below.


Replace dbname with your personal database title. Simply make a name up but be sure you keep in mind it or note it down. Inside instance i personally use servermomnet as my database title.

Create Database Name

Step 4 – Now produce database that is new and password while granting it full access to the newly created database. That task can simply be done by issuing demand below :

GRANT each ON dbname.* TO 'bloguser1'@'localhost' IDENTIFIED with 'servermom12345';

Replace bloguser1 along with your database that is own username replace servermom12345 with your own password. Remember you have been using as database root password that you should not use the same password as the one. Example :

Create DB User Grant Access

Step 5 – Finally, refresh database privileges and exit MySQL program :


Flushing Privileges

Adjusting Nginx Configuration

Step 1 – Edit Nginx Server Block of the web site which you have actually produced early in the day.

nano /etc/nginx/sites-available/domain.tld

example :

nano /etc/nginx/sites-available/servermom.net

Step 2 – Now placed remark mark (#) before old setup line (try_files $uri $uri/ =404;) and include brand new one below

try_files $uri $/index.php$ that is uri$args;

this makes certain that you may make usage of WordPress pretty permalink / SEO-friendly permalink.

Adjust Server Block

Step 3 – Then, you may have to include these lines inside that nginx host block file. This is simply not actually necessary however it can modify your site’s score and performance better in Google webpage Speed rating.

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* .(css|gif|ico|jpeg|jpg|js|png)$ {
        expires maximum;
        log_not_found down;

Eventually, it’s going to appear to be something such as this

inside nginx server block

Do keep in mind to save lots of modifications (Control+O) exit the editor then (Control+X).

Step 4 – Test then reload nginx.( if nginx configuration you have adjusted is fine and*******)

nginx -t
solution nginx reload

Reload Nginx Configuration

Step 5 – Now install extra PHP modules essential for WordPress to ( run properly*******)

apt-get install php-curl php-gd php-mbstring php-mcrypt php-xmlrpc( that is php-xml************************)

Remember to include sudo prior to the demand above if you should be logged in as sudoer.

Install Additional PHP Modules

The procedure usually takes for some time. Simply wait till it completed.

Step 6 – Finally, restart PHP-fpm solution

service php7.0-fpm reload

reload phpfpm nginx

Installing WordPress

Step 1 – visit /tmp folder and down load WordPress there :

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Download WordPress

Step 2 – Extract the newly installed WordPress package

tar -xzvf latest.tar.gz

Extract WordPress

Step 3 – Now duplicate WordPress sample that is config and edit it:

cp wordpress/wp-config-sample.php wordpress/wp-config.php
nano wordpress/wp-config.php

Editing WP Config

Step 4(*************)– edit the details now in MySQL Settings.

Before :

Before Config MYSQL

Put the MySQL database title, MySQL username, and password:

After Editing WP Config

Do perhaps not stop Nano editor yet.

Step 5 – Scroll on the next paragraphs a bit that is little you see Salt section. Open up your web browser and open this ( that is url*******)


You’ll get random Salt codes. Copy that :

Salt Key WordPress

Step 6(*************)– paste that code now in wp-config.php file you are currently editing (delete the codes that are existing place the brand new one):

WP Salt Keys

Do keep in mind to save lots of modifications (Control+O) exit the editor then (Control+X).

Step 7 – Now produce directory that is new folder called upgrade

mkdir wordpress/wp-content/upgrade

create upgrade folder

Step 8 – Let’s go your whole WordPress files and files toward internet root directory you've got produced :

cp -a /tmp/wordpress/* /var/www/domain.tld/html
Chown www-data that are-R /var/www/domain.tld/html

Replace domain.tld with your personal. Example

move wp files

Step 9 – Then, problem command that is following by line to put together appropriate file authorization:

find /var/www/domain.tld/html -type d chmod that is-exec {} ;
chmod g+w /var/www/domain.tld/html/wp-content
chmod -R g+w /var/www/domain.tld/html/wp-content/themes
chmod -R g+w /var/www/domain.tld/html/wp-content/plugins

Again, change all domain.tld components in those demand lines. Example

Setting Up Proper Permission

Step 10 – something that we nearly forgot, re-edit wp-config.php file.

nano /var/www/domain.tld/html/wp-config.php

Step 11 – include this line immediately after define DB_COLLATE (see screenshot):

define('FS_METHOD', 'direct');

Add FS Method Config

This action is essential to prevent WordPress from seeking FTP qualifications if you are doing Plugins or Themes improvement. Conserve modifications (Control+O) exit nano editor then (Control+X).

Completing Installation

Step 1 – simply start your web browser up once more and continue with regular WordPress install:

Install WP in Browser

Choose the language you would like and then click the “Continue” key.

Step 2 – complete all details that are required click on the “Install WordPress” key.

Fill WP Details

Step 3 – That’s it. You might now login towards newly set up WordPress web log. Click that Login key :

Finishing WP Install

Login WP First Time

Congratulation. You've got effectively set up WordPress in your Ubuntu host driven with Nginx, PHP7 fpm and MYSQL. Here is the fundamental setup of a webserver that is fast. You can still tweak its performance by adjusting nginx configuration like adding either caching that is server-based script-based caching (WP Super Cache, W3 complete Cache, etc.).

Now test if you're able to make use of permalink that is pretty install brand new plugin and never have to determine FTP qualifications.

Edit WP Permalink

Success! WordPress Search Engine Optimization / Pretty Permalink works!

Pretty Permalink Success

Now just do it install brand new plugin to check in the event that setup is okay. You shall see something such as this indicator as you are able to now install and upgrade any plugin and never have to be expected for FTP login details.

Install plugin success

Congratulation and blogging that is happy

Most typical concern : just how many site visitors this LEMP + WordPress setup are designed for? I'll attempt to do a benchmark that is quick within my next post. Therefore, keep tuned in. Contribute to my publication or follow me personally on twitter.

How exactly to Install NetBeans IDE in CentOS, RHEL and Fedora

Previous article

Just how to Install Django on Ubuntu 16.04

Next article

You may also like


Leave a reply

Your email address will not be published. Required fields are marked *

More in Apache