If you are looking for faster cloud hosting for WordPress or WooCommerce and also want to have full control over the server with root access at the affordable price then I would suggest you go with Upcloud.

They have managed cloud server for WordPress and WooCommerce and easy to use interface. This post will help you install WordPress instance on NGINX web server with Redis and CloudFlare as a free CDN provider.

At the same time; you’ll able to give write permission to your WordPress root directory that will let make any change you would like make on your WordPress theme and plugins from /wp-admin interface.

Sign up for Upcloud Account

If you have not yet signed up for then you can sign up using this button below. Sign up for UpCloud Promo Code

Deploy Your Upcloud Server

I am going to use Ubuntu 20.04 Server. If you are going to install multiple WordPress sites then choose at least 2GB of RAM and choose the closest location where your business is or clients are located. 

Watch me Deploy Linux Server on UpCloud

Don’t forget to check the box at the bottom for your personal IP address. 

Note down your root password for your Ubuntu server and IP address.

Upcloud also emails your root password. Start that email for quick access.

Login as root via SSH or Putty

Take your IP address and login with root username and root password.

Run the following commands to configure your Ubuntu.

apt update && apt upgrade -y
apt install -y ufw
ufw allow http
ufw allow https
ufw allow ssh
ufw enable

Create User 

adduser name

Give new user sudo privileges

usermod -aG sudo name

Login with new user via SSH

Logout and log back in with your new username and password for Ubuntu 

Install EasyEngine

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

Add A records to your domain DNS

Before you install and configure WordPress on your server. Add your server IP address to your domain under A records



Install & configure WordPress

You would not need to install PHP, NGINX, Redis, and WordPress one by one manually. All the packages will downloaded, installed and configured automatically.

Alter the following command with your website domain name, email id, wp admin username, password, wp database name. For more ee commands look below..

sudo ee site create mySite.com --type=wp --ssl=le --cache --dbuser=aks84 --dbname=myblogname --admin-user=myAdminNema --admin-pass=adminPassword [email protected] 

Give Permission to WordPress Root Folder

Login as root user from putty or SSH and run the following commands. replace /site.com/ with your domain name

nano /opt/easyengine/sites/site.com/app/wp-config.php

Add the following code to wp-config.php

define(‘FS_METHOD’, ’direct’);

Overwrite and exit (ctrl+o and ctrl+x)

Write Permission to WP Root – EasyEngine

This command is specific to EasyEngine WordPress installs. Replace /site1.com/ with your domain name

chown -R www-data:www-data /opt/easyengine/sites/site1.com/

Replace /site1.com/ with your domain name

chown -R www-data:www-data /opt/easyengine/sites/site1.com/app/htdocs/

EasyEngine All Install Options

Here is EasyEngine all install options to Deploy WordPress with; you should have a look at these option, if you would like to customise it even more. This is strain from EasyEngine docs.

ee site info –type=wp [–cache] [–vip] [–mu=] [–mu=] [–title=] [–admin-user=<admin-user>] [–admin-pass=<admin-pass>] [–admin-email=<admin-email>] [–local-db] [–with-local-redis] [–php=<php-version>] [–dbname=<dbname>] [–dbuser=<dbuser>] [–dbpass=<dbpass>] [–dbhost=<dbhost>] [–dbprefix=<dbprefix>] [–dbcharset=<dbcharset>] [–dbcollate=<dbcollate>] [–skip-check] [–version=<version>] [–skip-content] [–skip-install] [–skip-status-check] [–ssl=<value>] [–wildcard] [–yes] [–force]

Adding CloudFlare CDN with EasyEngine

Go ahead and create your Cloudflare free account, add your domain and create API key. Replace email and CF API key

sudo ee config set le-mail [email protected]
Sudo ee config set cloudflare-api-key asdfa3453sdfsafdjas;lkjdf;ljsa

UpCloud Promo Coupon

2 Responses

  1. Running Ubuntu 20.04.LTS on an UpCloud server, Redis says this when started:

    119557:M 09 Dec 2020 08:51:25.970 # Server initialized
    119557:M 09 Dec 2020 08:51:25.970 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for this to take effect.
    119557:M 09 Dec 2020 08:51:25.970 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
    119557:M 09 Dec 2020 08:51:25.970 * DB loaded from disk: 0.000 seconds
    119557:M 09 Dec 2020 08:51:25.970 * Ready to accept connections