Optimal WordPress Setup with WordOps & Caching

Running your own server can be time consuming and difficult. If you are just starting your blogging journey then I highly recommend that you begin with BlueHost. It took me several years before I was comfortable enough to move some of my sites off onto their own servers, and it is by no means required for most websites or blogs anyway. If you aren’t sure whether you need either BlueHost hosting or your own server, you probably just need BlueHost. As always, if you have any questions, then please email me.

If you followed my server setup guide then your new server should be secure and ready for WordOps and WordPress to be installed.

Before we dive into the steps though, what is WordOps exactly?

WordOps is a toolset for your server that lets you deploy and manage WordPress installations (ie sites) that are secure, optimized and blazing fast. It will install Nginx and configure it correctly for you. Nginx is your web serving software that will actually deliver/serve/show your website to your visitors.

WordOps also installs MariaDB which is where all your posts (well, the text anyway) will be stored. It’s a database based on MySQL, which you may have heard of.

Finally, WordOps also installs and automatically sets up multiple cache backends and will let you easily obtain an SSL certificate for your domain (see the padlock next to “hostt.com” in your browser address bar?) which means that all data exchanged between you and the website is encrypted.

On top of this, WordOps can also install a bunch of optional software (server monitoring, firewalls, etc).

By now you must be thinking that all this sounds pretty complicated right? I am not going to lie and will admit that the underlying software is complex, however WordOps makes it fairly easy to setup and use – you can be up and running with just one or two commands (which are themselves very intuitive) in as little as five minutes.

Read on and see what I mean.

Installing WordOps

Where we’d left in my previous guide you had just finished defining the default root email and were otherwise all secure and ready to go. So let’s install WordOps now. Just enter the following in your shell prompt:

wget -qO wo wops.cc && sudo bash wo

You’ll need to enter your name and email during the installation, which should take around five minutes. The name will become the default admin username for the WordPress sites you create and the email will be the default admin email.

Other than that, you’re done! It really is that easy. So, let’s make a WordPress site.

Create Your WordPress Site

For the purposes of this example let’s assume that your website will be located at www.hostt.com. I’m also going to assume that you’ve already pointed your domain to the server (if you haven’t, see this guide). N

To setup your WordPress site all you need to type is the following:

wo site create hostt.com --wpfc --php74 -le

As you’ll soon see, everything required to get your blog up and running will be installed and configured for you automatically with that single command.

You can now go ahead and access your brand new WordPress site using the details you see from the output:

WordPress admin user : xxxx
WordPress admin password : xxxx

Put a “/wp-admin/” onto the end of your domain, so that it would become hostt.com/wp-admin/ for example, and paste that into a browser. You should get a prompt asking you to login as below. Simply enter your admin username and password and you’re in!

The WordPress login screen

Change WordOps Tools Port

There’s one last thing to do. Head back here and remind yourself about the following lines:

# Allow incoming WordOps Tools
-A INPUT -p tcp --dport 31837 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 31837 -m state --state ESTABLISHED -j ACCEPT

# Allow outgoing WordOps Tools
-A OUTPUT -p tcp --dport 31837 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --sport 31837 -m state --state ESTABLISHED -j ACCEPT

WordOps comes with a suite of tools, called WordOps tools, some of which we might want to use at a later stage (like phpMyAdmin, which lets you edit databases in a graphical user interface (GUI)).

The default port of WordOps tools is 22222, we are going to change that to the port we opened in our Iptables firewall though. In the example above, that port is 31837. Run these commands:

wo secure --port 31837

wo secure --auth

The first command changes the port that we use to access the tools, the second changes the username and password that we’ll need to enter in order to use them.

If you want to take a look now, you can head to https://[your-server-ip]:31837/ or https://[your-domain.com]:31837/ using your browser and login. There won’t be much to see just now though – we’ll run over the different tools that are available within WordOps in another article.

For now, since you are up and running, just make sure that you follow my weekly server maintenance routine.

Categorized as Hosting

By Sean Robinson

My name is Sean Robinson and I’ve been building and running my own blogs and websites since 2004, and have been doing it full-time for over a decade. If you'd like to know more about my story, please click here.


  1. WordOps does look really nice, I hope they expand the list of supported software so I can give it a try. Nginx isn’t my preferred web server, I’ve been using OpenLiteSpeed for a couple of years now, LSCache for WordPress makes it blazing fast. Really cool that they use Brotli and Redis out of the box, I use them too. Does it set up FastCGI Cache as well?

  2. I’m really intrigued by WordOps, I’ll deploy a cheap VPS and play around with it. Nginx isn’t something I’m very good with so having it all done for me would be great, hopefully all goes well and I can move my website over permanently. Apache is a little slow even with a WordPress caching plugin so this would be a nice optimization.

  3. WordOps has been really great so far but I do have a concern. My website is currently for guests only but I am working on a membership program. Will guests and logged-in users have a separate cache? I don’t want guests seeing exclusive content or members experiencing issues. Maybe I can disable caching for logged-in users as the content will be dynamic for them.

  4. I’m a total rookie when it comes to Nginx but I’d really love to make the switch for the additional performance. My current setup is Apache + Nginx as a reverse proxy. If I were to make the switch to Nginx only, what about my htaccess rules? I have a lot of them and it’s my understanding that they won’t work on Nginx.

  5. Helllo

    Everything seems very very complicated to me. Okay I can install WordOps on a vps but how will I change nameservers? Lets say my domain is mydomain.com and my VPS has this IP: 198.100100.20. So my nameservers will be:

    How will I define ns1 and ns2 on this VPS?

    I have read your previous blog article “Advanced Wordpess Hosting Server Setup Steps – SSH Keys, Firewall & Other Tweaks” But it does not mention about nameservers at all.

    It is really weird. Everyone talking on WordOps acts like it is not necessary to deal with nameservers on VPS. Is it so? Some people talk about setting BIND for nameservers. Some people talk about using cloudflare nameservers. But no one really explains what to do. Any help will be much appreciated.

Leave a comment

Your email address will not be published.