WordOps Setup Tutorial

In this tutorial, we set up a cheap VPS server, with a high performance optimized WordPress setup. Previously, this used to be something only a professional back end dev could really do. However, the WordPress community have created an excellent tool called WordOps which automates much of this process.

You can try this method for free one of our recommended VPS providers here:

Vultr, free trial
Linode, free trial
Digital Ocean, free trial

WordOps official setup guide is here.

We demonstrate a quick using Linode and Let’s encrypt SSL on this video below:

In another tutorial, We also show how to setup Cloudflare SSL. In this video we also perform a migration of an existing WordPress site over to our new WordOps server. It takes a little longer to setup, but I somewhat prefer the Cloudflare setup:

WordOps is a little complex, especially if you’re not used to a command line interface. Usually we recommend setting up a VPS with Plesk, for the simplicity of the free graphical control panel, which is much more accessible for less technical users. Though Plesk does come with some limitations, mainly the 3 domain limit on the free version, and also the fact that not all VPS providers carry the free version. In our case, we needed to find an alternative for Plesk when using Linode, and WordOps does a great job!

For setting up WordOps, we use a terminal to access the Ubuntu Linux install we created. We are using windows here, and like to use PuTTY, on Mac you can use the standard terminal.

Once logged into the terminal, these are the commands we used to setup:

Install WordOps:
wget -qO wo wops.cc && sudo bash wo

Enable bash auto complete (you can hit TAB to auto complete commands)
source /etc/bash_completion.d/wo_auto.rc


bash -l

Install the WordOps Stack
wo stack install

Make a new WordPress Site, using FastCGI caching, php7.4 and Let's Encrypt SSL
wo site create new.com --wpfc --php74 -le

or when setting up SSL manually

wo site create new.com --wpfc --php74

Install UFW Firewall
wo stack install --ufw

Maintain & Update Wordops (run these every month or so)
wo maintenance
wo update

When it's time upgrade Php in the future... (not yet!)
wo site update example.com --php80

Make the WordOps backend accessible by Https through example.com:22222 
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 22222 -j ACCEPT

In our Cloudflare SSL method, we used the following for the ssl.conf file. Change the name of the cert and key pem files to match your own website.

listen 443 ssl http2;
listen [::]:443 ssl http2;
#ssl on;
ssl_certificate     /etc/cloudflare/ideademo-site-cert.pem;
ssl_certificate_key    /etc/cloudflare/ideademo-site-key.pem;
ssl_trusted_certificate /etc/cloudflare/origin_ca_rsa_root.pem;
ssl_stapling_verify on;

Finally, if you are manually moving wp-content files over during a migration, you may need to fix the owner and group settings with the following:

cd /var/www/ideademo.site/htdocs
chown -R www-data:www-data wp-content

Similar Posts