How to Install WordPress with EasyEngine on Ubuntu 18.04 and Debian

EasyEngine (ee) is a command-line tool for the Nginx web servers to manage WordPress sites that are running on the LEMP Stack (Linux, Nginx, MySQL/MariaDB, and PHP-FPM). EasyEngine created with python and can be installed on Ubuntu and Linux Debian distributions.

In this tutorial, I will show you step-by-step how to install and manage WordPress site using EasyEngine. We will install EasyEngine on Ubuntu 18.04 or Debian Jessie 8 server, install WordPress and enable the SSL Letsencrypt using EasyEngine command-line tool.

Prerequisites

  • Ubuntu 18.04 or Debian Jessie 8 Server
  • Root privileges
  • A domain name

What we will do?

  1. Install EasyEngine on Ubuntu 18.04
  2. Install WordPress and Letsencrypt with EasyEngine
  3. Additional SSL Configuration (Ubuntu 18.04)
  4. Testing
  5. Common Error

Step 1 - Install EasyEngine

EasyEngine currently offers support for Ubuntu and Debian based Linux systems. In this section, we will install the EasyEngine tool on Ubuntu 18.04 and Debian 8 server using the installer script.

Log in to the server and update all repositories.

sudo apt update

Download the EasyEngine installer script and run it.

wget -qO ee rt.cx/ee && sudo bash ee

The installer script will install all packages and dependencies needed.

Add repository

Now we will be asked about the name and an email.

Type the name and the email address.

Enter name and email address

After the installation has been completed, you will get the result as below.

Install EasyEngine

After the installation, we need to apply the bash auto-completion for EasyEngine ee command.

Run the following command.

source /etc/bash_completion.d/ee_auto.rc

And check the version of EasyEngine that has been installed.

sudo ee --version

Show EasyEngine version

The EasyEngine command-line tool has been installed on Ubuntu 18.04.

Step 2 - Install WordPress with EasyEngine

EasyEngine comes with some features that make WordPress easy to deploy.

EasyEngine features:

  • Supports for MultiSite WordPress site (through a domain-name or sub-directory).
  • Easy to enable cache settings for WordPress including, Memcached Nginx cache, Redis, W3 Total Cache, and WP Super Cache.
  • Easy to manage the server stack including basic LEMP stack, install additional packages such as phpMyAdmin, adminer, nginx pagespeed etc.

In this section, we will learn basic WordPress installation using the EasyEngine ee command. And then installing WordPress using the PHP-FPM 7.0 and enable the SSL Letsencrypt for our installation.

Install WordPress with Basic Configuration

Run the ee command below.

sudo ee site create wp.hakase-labs.io --wp

When it's complete, you will get detailed info about the site, including WordPress login admin and password.

Install WordPress with EasyEngine

And you will get the WordPress installed on '/var/www/wp.hakase-labs.io' directory and using the PHP-FPM 5.6.

Check using ee command below.

sudo ee site info wp.hakase-labs.io

Check site with ee command

Install WordPress with Cache Settings

EasyEngine provides automatic WordPress cache settings for the following software:

  • --wpfc: Nginx Cache
  • --w3tc: W3 Total Cache
  • --wpsc: WP Super Cache
  • --wpredis: WP Redis Cache

Install WordPress with basic Nginx cache and W3 Total Cache using the ee command below.

sudo ee site create wp.hakase-labs.io --wpfc

And the following is the result.

Create site with EasyEngine

Install WordPress with PHP 7.0

By default, the ee command will force to install PHP-FPM 5.6 for our WordPress installation. And if you want to install the site with the newest version PHP-FPM 7.0, use the '--php7' option.

Run the ee command below.

sudo ee site create wp.hakase-labs.io --wpfc --php7

Now check the stack details info.

sudo ee site info wp.hakase-labs.io

Install WordPress with PHP 7.0

Install Wordpress with PHP-FPM 7.0, WordPress Cache, and SSL Letsencrypt

To install the WordPress using the PHP-FPM 7.0 with the WordPress Cache and SSL Letsencrypt, run the ee command below.

sudo ee site create wp.hakase-labs.io --wpfc --php7 --letsencrypt

Install Wordpress with PHP-FPM 7.0, WordPress Cache, and SSL Letsencrypt

And you will be asked about the SSL Letsencrypt configuration for the domain name.

Type 'y' for yes and then press Enter.

Following is the result.

Installation result

The WordPress installation with the PHP-FPM 7.0, SSL Letsencrypt, and Nginx Cache enabled has been completed successfully.

Step 3 - Additional SSL Configuration (on Ubuntu 18.04)

In this step, we will add the SSL configuration for the Nginx web server.

By default, EasyEngine stores the SSL configuration at the '/var/www/domain.com/conf' directory.

Go to the '/var/www/domain.com/conf' directory.

cd /var/www/domain.com/

Now edit the Nginx configuration 'nginx/ssl.conf'

vim nginx/ssl.conf

Add the 'ssl_ciphers' configuration below.

ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH';

Save and exit.

Nginx ssl config

Now restart the EasyEngine stack using the ee command below.

sudo ee stack restart

SSL configuration for WordPress site under the EasyEngine has been completed.

Configuration completed

Step 4 - Testing

Open the web browser and type the WordPress URL installation, mine is: http://hakase-labs.io/

And you will be redirected to the https connection and shown the default WordPress home page with the 'twentyseventeen' theme as below.

WordPress successfully installed

Now open the WordPress login page, mine is: http://hakase-labs.io/wp-login.php

Type the username and password given during the installation.

Wordpress admin login

And you will get the WordPress dashboard.

WordPress Dashboard

Installation and configuration of the WordPress site with Cache Configuration and SSL Letsencrypt using EasyEngine on Ubuntu 18.04 or Debian Jessie 8 have been completed successfully.

Step 5 - Common Errors

SSL SPDY Error on Ubuntu 18.04

Error page on google chrome.

SSL SPDY Error on Ubuntu 18.04

"ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY".

Answer:

Back to the 'Step 3 - Additional SSL Configuration'

Generate SSL Letsencrypt Error

Error messages:

"Unable to setup, Let’s Encrypt"

Answer:

By default, EasyEngine creates the nginx virtual host that contains domain name 'domain.com' and 'www.domain.com'. So make sure you've added the 'www' CNAME on your DNS configuration.

Reference

About Muhammad Arul

Muhammad Arul is a freelance system administrator and technical writer. He is working with Linux Environments for more than 5 years, an Open Source enthusiast and highly motivated on Linux installation and troubleshooting. Mostly working with RedHat/CentOS Linux and Ubuntu/Debian, Nginx and Apache web server, Proxmox, Zimbra Administration, and Website Optimization. Currently learning about OpenStack and Container Technology.

Share this page:

Suggested articles

2 Comment(s)

Add comment

Comments

By: VirtuBox at: 2018-09-11 13:19:14

Hello,

that's a nice tutorial, but to fix the error with nginx ciphers suite, the easiest is to replace the ciphers suite defined in /etc/nginx/nginx.conf : 

 

sed -i 's/ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHADHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!ECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;/ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;/' /etc/nginx/nginx.conf

By: maeve at: 2018-09-14 20:53:18

Hi, Thanks for a great tutorial! I do think for beginners, like me, under step 3: 

Go to the '/var/www/domain.com/conf' directory. The code in the box should be:

cd /var/www/domain.com/conf 

instead of : cd /var/www/domain.com/