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.
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 234.123.0.0 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
@ 123.45.35.756
www 123.45.35.756
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
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
Hi JH,
Please run the following command
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
sysctl -p