How To

Install WordOps on Ubuntu to Manage WordPress Sites

Five keystrokes to go from a bare Ubuntu server to a fully configured WordPress site with Nginx, PHP 8.3, MariaDB 11.4, SSL, and Redis caching. That’s what WordOps does. It’s a CLI tool (forked from EasyEngine v3) that automates the entire LEMP stack deployment and ongoing WordPress management through simple terminal commands.

Original content from computingforgeeks.com - post 117342

This guide walks through the full setup: installing WordOps, creating a WordPress site with Let’s Encrypt SSL, enabling Redis object caching, and managing the stack. Everything was tested on a fresh Ubuntu 24.04 server and the output you see is real.

Tested March 2026 | WordOps 3.22.0, Ubuntu 24.04 LTS, Nginx 1.28.2, PHP 8.3.30, MariaDB 11.4.10

What WordOps Installs

One command installs a production-grade WordPress stack. Here’s exactly what you get:

ComponentVersion (tested)Details
Nginx1.28.2 (WordOps custom build)TLS 1.3, HTTP/3 QUIC, Brotli compression
PHP-FPM8.3.30Supports 8.1, 8.2, 8.3, 8.4
MariaDB11.4.10 LTSWith mariadb-backup for non-blocking dumps
Redis7.0Full-page and object caching
WP-CLILatestWordPress management from the terminal
NetdataLatestReal-time server monitoring (port 19999)
Let’s Encryptvia acme.shAuto-issued and auto-renewed SSL certificates

Prerequisites

  • A fresh Ubuntu 24.04 LTS or 22.04 LTS server (also supports Debian 10/11/12)
  • Root or sudo access
  • A domain name pointing to the server’s IP (for SSL)
  • Ports 80, 443, and 22 open

Install WordOps

The installer is a single script that sets up the WordOps CLI and its Python environment:

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

WordOps uses git to version-control server configurations, so configure git before running any wo commands:

sudo git config --global user.name "Your Name"
sudo git config --global user.email "[email protected]"

Verify the installation:

sudo wo --version

You should see:

WordOps v3.22.0
Copyright (c) 2024 WordOps.

Install the Stack

Install the recommended stack (Nginx, PHP, MariaDB, Redis, Netdata) with a single command:

sudo wo stack install

This takes 2-5 minutes depending on the server. After completion, verify all services are running:

sudo wo stack status

All four services should show Running:

nginx     :  Running
php8.3-fpm:  Running
mariadb   :  Running
netdata   :  Running

Create a WordPress Site with SSL

Make sure your domain’s DNS A record points to the server, then create the site:

sudo wo site create example.com --wp --letsencrypt=on [email protected]

WordOps handles everything: downloads WordPress, creates the database, configures Nginx, obtains the SSL certificate, and sets up HTTPS redirect. The output shows each step:

Setting up NGINX configuration   [Done]
Setting up webroot               [Done]
Downloading WordPress            [Done]
Setting up database              [Done]
Configuring WordPress            [OK]
Installing WordPress             [OK]
Installing plugin nginx-helper   [OK]
Issuing SSL cert with acme.sh    [OK]
Deploying SSL cert               [OK]
Adding HTTPS redirection         [OK]

WordPress admin user : WordOps Admin
WordPress admin password : VoD3xNkOyuaERg4FlU1q7dKW
Successfully Configured SSL on https://example.com

The site is live with HTTPS and HTTP/2:

WordPress frontend page deployed with WordOps showing Hello world post served over HTTPS

The WordPress dashboard is accessible at https://example.com/wp-admin/:

WordPress 6.8.4 dashboard showing Site Health, At a Glance, and Quick Draft panels

Enable Redis Object Cache

WordPress makes hundreds of database queries per page load. Redis caches these queries in memory, cutting response times significantly. Enable it with:

sudo wo site update example.com --wpredis

WordOps installs Redis, configures the nginx-helper plugin, and sets up the object cache:

Installing APT packages         [OK]
Tuning Redis configuration      [OK]
Restarting redis-server         [OK]
Backup location : /var/www/example.com/backup/29Mar2026-08-37-55
Backing up database             [Done]
Setting up NGINX configuration  [Done]
Setting plugin nginx-helper     [OK]
Object Cache:    Enable
Successfully updated site http://example.com

WordOps automatically backs up the database before making changes. The backup path is printed so you can restore if needed.

Server Monitoring with Netdata

WordOps installs Netdata for real-time server monitoring. Access it at port 19999:

http://10.0.1.50:19999/

The dashboard shows CPU, memory, disk I/O, network traffic, Nginx connections, PHP-FPM processes, and MariaDB queries in real time:

Netdata monitoring console showing 3993 collected metrics for WordPress server managed by WordOps

WordOps Command Reference

Site Management

CommandWhat It Does
wo site create example.com --wpCreate WordPress site (HTTP only)
wo site create example.com --wp --letsencrypt=onWordPress with Let’s Encrypt SSL
wo site create example.com --wp --wpredisWordPress with Redis object cache
wo site create example.com --wpsubdirWordPress Multisite (subdirectory)
wo site create example.com --wpsubdomainWordPress Multisite (subdomain)
wo site update example.com --wpredisAdd Redis cache to existing site
wo site update example.com --php83Switch site to PHP 8.3
wo site info example.comShow site config, PHP version, SSL, DB credentials
wo site listList all managed sites
wo site delete example.comRemove site and its config (prompts for DB cleanup)
wo site enable example.comEnable a disabled site
wo site disable example.comDisable a site (keeps files)

Stack Management

CommandWhat It Does
wo stack installInstall recommended stack (Nginx, PHP, MariaDB, Netdata)
wo stack install --redisInstall Redis server
wo stack install --php84Install PHP 8.4 alongside existing version
wo stack statusShow service status (running/stopped)
wo stack restartRestart all services
wo stack restart --nginxRestart only Nginx
wo stack upgradeUpgrade stack packages
wo stack removeRemove stack packages

SSL and Security

CommandWhat It Does
wo site update example.com -le=onAdd Let’s Encrypt SSL to existing site
wo site update example.com -le=wildcardIssue wildcard SSL (requires DNS API)
wo secure --sshport 2222Change SSH port
wo secure --port 22222Change WordOps backend port

Site Creation Options

WordOps supports several WordPress configurations out of the box. Each flag configures Nginx differently for optimal performance:

# Standard WordPress
sudo wo site create example.com --wp

# WordPress with fastcgi_cache (full-page Nginx caching)
sudo wo site create example.com --wpfc

# WordPress with Redis full-page + object cache
sudo wo site create example.com --wpredis

# WordPress with WP Super Cache plugin
sudo wo site create example.com --wpsc

# WooCommerce-optimized WordPress
sudo wo site create example.com --wp --wpredis

# WordPress with specific PHP version
sudo wo site create example.com --wp --php84

For production sites serving significant traffic, --wpredis gives the best performance because both full-page caching and object caching run from memory instead of disk.

Troubleshooting

Error: “WordOps (wo) require an username”

This happens when git isn’t configured. WordOps uses git to track server configuration changes. Fix it with:

sudo git config --global user.name "Admin"
sudo git config --global user.email "[email protected]"

SSL certificate fails to issue

The domain must resolve to the server’s IP before running the site create command. WordOps uses the webroot challenge, which requires Nginx to serve the ACME challenge file on port 80. Verify DNS resolves correctly with dig example.com and that port 80 is open.

WordOps vs Manual LEMP Stack

TaskManual LEMPWordOps
Install full stack30-60 min (apt, config files, systemd)wo stack install (5 min)
Create WordPress site + SSL15-20 min (vhost, DB, WP download, certbot)One command (2 min)
Enable Redis cacheInstall Redis, configure plugin, edit wp-configwo site update --wpredis
Switch PHP versionInstall new PHP, update vhost, restartwo site update --php84
Server monitoringInstall and configure Netdata/PrometheusIncluded by default
SSL renewalConfigure cron for certbotAuto-managed by acme.sh

WordOps makes sense when you manage multiple WordPress sites on a single VPS and want consistent configuration without writing Nginx vhosts by hand. For single-site setups or non-WordPress applications, a manual LEMP stack gives you more flexibility. For related WordPress tools, see the WPScan security scanner guide for hardening your WordPress installations. If you need a reverse proxy in front of multiple WordPress sites, the WordPress with Nginx on Ubuntu guide covers the manual approach.

Related Articles

Debian Install PHP 8.5 on Debian 13/12 with Nginx and PHP-FPM Containers Install MicroK8s Kubernetes on Rocky Linux 10 / AlmaLinux 10 / Ubuntu 24.04 Databases Manage MySQL / PostgreSQL / SQL Server using SQLPad Editor CentOS Install and Configure October CMS on CentOS Stream 8

Leave a Comment

Press ESC to close