Setup ExpressionEngine
Setup ExpressionEngine
This example installs ExpressionEngine inside the Devilbox PHP container, creates a MySQL database, and serves the CMS through the standard Devilbox htdocs document root.
Overview
| Project name | Container path | Database | TLD_SUFFIX | Project URL |
|---|---|---|---|---|
my-ee | /shared/httpd/my-ee | my_ee | lvh.me | http://my-ee.lvh.me / https://my-ee.lvh.me |
Projects live in /shared/httpd/ inside the PHP container and in ./data/www/ on the host.
Prerequisites
- Devilbox installed with PHP 8.3 or PHP 8.4 available.
- HTTPD, MySQL, and Bind services enabled.
- An ExpressionEngine download URL or release archive from your ExpressionEngine account.
Start the stack:
./dvl.sh up php httpd mysql bindWalk through
It will be ready in eight steps:
- Enter the PHP container.
- Create a new virtual host directory.
- Download and extract ExpressionEngine.
- Link the webroot to
htdocs. - Add a MySQL database.
- Verify DNS.
- Run the installer.
- View the site and control panel.
1. Enter the PHP container
./dvl.sh shell php832. Create the vhost directory
mkdir -p /shared/httpd/my-eecd /shared/httpd/my-ee3. Download and extract ExpressionEngine
Download the current ExpressionEngine release archive from the official source, then place it in the vhost directory as ee.zip:
mkdir eeunzip ee.zip -d eeExpected structure:
tree -L 1.├── ee└── ee.zip4. Link the webroot
ExpressionEngine can be served from the extracted directory unless you move its public entrypoint elsewhere:
ln -s ee htdocsExpected structure:
tree -L 1.├── ee├── ee.zip└── htdocs -> ee5. Add the MySQL database
mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_ee CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'Remember the database name and credentials for the browser installer.
6. Verify DNS
my-ee.lvh.me resolves to 127.0.0.1 by default. For a custom suffix, add an equivalent hosts-file entry.
7. Install ExpressionEngine
Open http://my-ee.lvh.me/admin.php or https://my-ee.lvh.me/admin.php and follow the installer.
Use these database values:
- Host:
127.0.0.1 - Database:
my_ee - User:
root - Password: your MySQL password from
.env
8. View your site
Open http://my-ee.lvh.me or https://my-ee.lvh.me. The control panel remains available at /admin.php.
Next steps
- Use the Devilbox intranet database tools to inspect
my_ee. - Configure trusted HTTPS before production-like testing.
- Add cache or queue services only when your ExpressionEngine project requires them.