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 Docker, Docker Compose, and PHP are available. However, in this guide, I will assume Debian 12 (as the development team tests it 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

Reference: Installation Guide

Creating a WordPress Website

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

ee site create sample.com --type=wp --ssl=le --cache

Explanation:

  • sample.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 example.com

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

ee site reload sample.com

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

ee site refresh sample.com

Update the entire server, including global and site services:

ee cli update

Clone an existing website, e.g., create sample.test from sample.com to test new features:

ee site clone sample.com sample.test

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

ee shell sample.com

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

ee site info sample.com

Remove a website:

ee site remove sample.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 sample.com --type=wp --ssl=no --cache

Copy the source files to EasyEngine’s directory:

rsync -avhP /path/to/source/wp-content/ /opt/easyengine/sites/sample.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/sample.com/app/htdocs/

# Enter the container shell
ee shell sample.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 sample.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