Deploying with WordPress

Deploying WordPress with EasyEngine 4

Then, you should have the confidence to choose and a basic understanding of how EasyEngine 4 operates. Now, we can proceed with step-by-step deployment.

Installing EasyEngine 4

EasyEngine 4 can be installed on any operating system as long as it has Docker/Docker Compose and PHP installed. However, for Ubuntu/Debian specifically, EasyEngine provides an easy installer that also sets up the necessary dependencies. Here, I’m assuming the use of Debian 12, which is what the development team uses for testing (on Debian/Ubuntu).

Install with a single command

wget -qO ee https://rt.cx/ee4 && sudo bash ee

To enable command auto-completion (Tab completion) for easier use of EasyEngine 4, install it with:

wget -qO ~/.ee-completion.bash https://raw.githubusercontent.com/EasyEngine/easyengine/master/utils/ee-completion.bash
echo 'source ~/.ee-completion.bash' >> ~/.bash_profile
source ~/.ee-completion.bash

Install on RHEL/CentOS, openSUSE, and other distributions

Reference: Installation Guide

Creating a WordPress Website

EasyEngine automatically installs, configures, and connects its site containers and global services.

ee site create YOUR-SITE.COM --type=wp --ssl=le --cache

Explanation:

  • YOUR-SITE.COM: Replace with your actual domain/subdomain.
  • --type=wp: Creates a WordPress site (by default, EE creates a simple HTML site).
  • --ssl=le: Automatically installs SSL with Let’s Encrypt.
  • --cache: Enables full-page caching + Redis object cache.

Reference for site creation commands: ee site create

Managing WordPress Lifecycle

List all available sites on the host:

ee site list

Disable a site:

ee site disable YOUR-SITE.COM

Restart Nginx, PHP, and other services without restarting the container:

ee site reload YOUR-SITE.COM

Restart the site and apply updates to docker-compose.yaml:

ee site refresh YOUR-SITE.COM

Update the entire server, including global and site services:

ee cli update

Clone an existing website, e.g., clone dev.YOUR-SITE.COM from YOUR-SITE.COM to test new features:

ee site clone YOUR-SITE.COM dev.YOUR-SITE.COM

Access the shell within the website container, e.g., to run WordPress management commands via WP-CLI:

ee shell YOUR-SITE.COM

View site information, including storage location, user, password, database details:

ee site info YOUR-SITE.COM

Remove a website:

ee site remove YOUR-SITE.COM

Reference for site management commands: ee site

Migrating an Existing WordPress Website to EasyEngine

Prepare your website data:

  • Website source files: typically found in /wp-content.
  • Database: Export a .sql file using wp db export.

Create a WordPress site without SSL (to avoid errors):

ee site create YOUR-SITE.COM --type=wp --ssl=no --cache

Copy the source files to EasyEngine’s directory:

rsync -avhP /path/to/source/wp-content/ /opt/easyengine/sites/YOUR-SITE.COM/app/htdocs/wp-content/

Check file permissions after copying.

Restore the database:

# Copy the database file
rsync -avhP /path/to/source/database.sql /opt/easyengine/sites/YOUR-SITE.COM/app/htdocs/

# Enter the container shell
ee shell YOUR-SITE.COM

# Import using WP-CLI
wp db import database.sql

# Flush cache and exit
wp cache flush && exit

Checking permissions and DNS

  • Check wp-config.php
  • Verify permissions (must be www-data:www-data).
  • Point the domain’s DNS to the EasyEngine server.

Enable SSL:

ee site update YOUR-SITE.COM --ssl=le

Verify caching setup:

  • EasyEngine uses the nginx-helper plugin.
  • Ensure it’s enabled and configured for Redis caching.

Reference: EasyEngine Commands

Last updated on