Manage WordPress With WordOps

Last Updated: Thu, Apr 16, 2020
Linux Guides System Admin Web Servers

A LEMP stack runs web applications on Linux with Nginx, MySQL, and PHP. WordOps is a management tool for WordPress on the LEMP stack. This guide describes how to install, configure, and manage a WordPress site using WordOps on Ubuntu 18.04.

What is the WordOps WordPress Stack

WordOps simplifies WordPress deployment by automating the installation and configuration of various dependencies. The WordOps stack consist of the following components:

  • Core LEMP stack: Nginx, MariaDB, and PHP.
  • Cache backend: support for Nginx fastcgi_cache, Redis, WP-Super-Cache, WP-Rocket, and Cache Enabler.
  • Security component: UFW firewall and Fail2ban.
  • Netdata for server monitoring.
  • Lightweight web panel for server administration.
  • Database management: phpMyAdmin, Adminer, and MySQLTuner.
  • SSL configuration and renewal using Let's Encrypt.

Visit WordOps Github page for more information.

Requirements

The following conditions are required to follow this guide:

  • A Vultr VPS running Ubuntu 16.04 or 18.04.
  • Root privileges or a user with sudo rights
  • Basic familiarity with WordPress administration and Linux commands

Step 1: Update Ubuntu

Make sure all components are upgraded before installing WordOps.

# apt update -y && apt upgrade -y

Step 2: Install WordOps Stack

Log in to the Linux machine and execute the following auto-install script.

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

An alternate installation method is to clone the Github repository and run the install script:

# git clone https://github.com/WordOps/WordOps.git
# cd WordOps
# sudo bash install

During installation, you will be prompted for a username and email address. This is your default admin account for WordPress.

Step 3: Post-Install Configuration

WordOps provides numerous components to run a WordPress site. The wo stack command controls how those components installed.

Install the default components.

# wo stack install

WordOps will install and configure the components. This may take several minutes. After the install is complete, WordOps will report the login information for the backend, which has useful information and reports for your WordPress site.

HTTP Auth User Name: WordOps
HTTP Auth Password : YOUR_PASSWORD
WordOps backend is available on https://192.0.2.123:22222 or https://myexample1.example.com:22222

The current version of WordOps does not install PHP 7.3 during the default installation. Upgrade to PHP 7.3.

# wo stack install --php73

Before creating the WordPress site, verify all the required components are installed properly.

# wo stack status

Make sure that all the required modules are running. WordPress requires, at a minimum, the following components.

  • Nginx
  • php7.2-fpm or php7.3-fpm
  • mysql

Creating a WordPress Site

The wo site command manages websites in WordOps. The most common subcommands are create, update, and delete. See the official documentation for a full list of subcommands.

Create a Wordpress site myexample1.example.com with PHP 7.3.

# wo site create myexample1.example.com --wp --php73

The --wp option specifies WordOps will deploy a WordPress site instead of a plain PHP web site. Behind the scenes, WordOps downloads the latest WordPress files, configures an Nginx virtual host, creates the MariaDB database, and installs a WordPress site.

Once site creation is complete, WordOps reports the admin user name and auto-generated password to access the WordPress admin panel.

WordPress admin user : YourAdminName
WordPress admin password : GeneratedPassword
Successfully created site http://myexample1.example.com

WordOps can deploy multiple web sites on a single server. Create a second site myexample2.example.com using the same command.

# wo site create myexample2.example.com --wp --php73

Firewall Configuration

WordOps comes with the UFW firewall enabled by default. It also includes fail2ban to prevent brute-force attacks. Check the state of UFW using ufw status command. If UFW is not running, execute the following lines to deploy UFW with WordOps:

# wo stack install --ufw
# ufw enable
# ufw status

Configure the UFW ports for WordPress. Allow SSH(22), HTTP(80), HTTPS(443), WordOps Admin panel(22222), and the GPG repository(1137).

# ufw allow 22
# ufw allow 80
# ufw allow 443
# ufw allow 22222
# ufw allow 1137

Applying SSL to WordPress Site

WordOps supports the free Let's Encrypt SSL certificates for domains, subdomains, and wildcards. The --le option manages the certificate configuration tasks.

Add a Let's Encrypt SSL certificate configuration to the myexample1.example.com site.

wo site update myexample1.example.com --le

Enable Cache for WordPress

WordOps supports FastCGI and Redis to speed up WordPress and reduce server resources. WordOps is also compatible with caching plugins such as WP-Rocket, WP Super Cache, and Cache Enabler. The fasgcgi cache is simple and does not rely on any commercial plugins. The following command installs and configures FastCGI and the nginx_helper plugin in WordPress for myexample1.example.com.

wo site update myexample1.example.com --wpfc

To verify the configuration, log in to the WordPress admin panel and check the nginx_helper plugin. Verify that FastCGI is enabled and the disk caching configuration option is checked.

It is easy to switch to the Redis cache with the --wpredis option.

wo site update myexample1.example.com --wpredis

Conclusion

WordOps provides many tools for WordPress that simplify deployment and administration, It prevents misconfiguration errors, provides production-quality security with UFW and fail2ban support, and improved performance with multiple available caching systems.

Want to contribute?

You could earn up to $300 by adding new articles