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 or Debian Linux.
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 Rcs cloud server running Ubuntu (16.04, 18.04, or 20.04) or Debian (9 or 10)
- See the WordOps Prequisites page for more details.
- Root privileges or a user with sudo rights
- Basic familiarity with WordPress administration and Linux commands
1. Update Ubuntu
Make sure all components are upgraded before installing WordOps.
# apt update -y && apt upgrade -y
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.
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.