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 eeTo 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.bashInstall 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 --cacheExplanation:
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 listDisable a site:
ee site disable YOUR-SITE.COMRestart Nginx, PHP, and other services without restarting the container:
ee site reload YOUR-SITE.COMRestart the site and apply updates to docker-compose.yaml:
ee site refresh YOUR-SITE.COMUpdate the entire server, including global and site services:
ee cli updateClone 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.COMAccess the shell within the website container, e.g., to run WordPress management commands via WP-CLI:
ee shell YOUR-SITE.COMView site information, including storage location, user, password, database details:
ee site info YOUR-SITE.COMRemove a website:
ee site remove YOUR-SITE.COMReference 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
.sqlfile usingwp db export.
Create a WordPress site without SSL (to avoid errors):
ee site create YOUR-SITE.COM --type=wp --ssl=no --cacheCopy 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 && exitChecking 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=leVerify caching setup:
- EasyEngine uses the
nginx-helperplugin. - Ensure it’s enabled and configured for Redis caching.
Reference: EasyEngine Commands