Prerequisites
Before starting development, ensure you have the following installed:PHP 8.2+
With Apache or PHP built-in server
MySQL/MariaDB
Version 8.0+ or MariaDB 11.4+
Node.js 18+
For asset compilation with Gulp
Composer
For PHP dependency management
Installation Steps
Configure Environment Variables
Copy the example environment file and configure it:Edit
.env with your local configuration:.env
Initialize the Database
Run the database deployment script:The script automatically detects your MySQL/MariaDB installation from:
- Windows
- Linux/Mac
C:\Program Files\MariaDB 11.4\bin\mariadb.exeC:\xampp\mysql\bin\mysql.exeC:\wamp64\bin\mysql\mysql8.0.31\bin\mysql.exe
PHP Configuration
Required Extensions
Ensure the following PHP extensions are enabled inphp.ini:
SSL Certificate Setup (Windows)
- Download the latest CA bundle from curl.se
- Save it to a location like
C:\php\cacert.pem - Update your
php.ini:
php.ini
Switching Between Environments
Zoo Arcadia provides helper scripts to switch between local and Docker configurations:- Switch to Local
- Switch to Docker
Run This changes:
switch-to-local.bat (Windows) to configure for local development:switch-to-local.bat
DB_HOST:db→localhostDB_USER:zoo_user→rootDB_PASS:zoo_password→root
Database Configuration
Connection Settings
For local development, use these default credentials:| Setting | Value |
|---|---|
| Host | localhost |
| Port | 3306 |
| Database | zoo_arcadia |
| User | root |
| Password | root (or your local MySQL password) |
Database Users
The initialization script creates two database users:zoo_admin - Full Access
zoo_admin - Full Access
- Username:
zoo_admin@localhost - Password:
secure_password(change in production) - Privileges: ALL PRIVILEGES on
zoo_arcadia.* - Purpose: Database administration and migrations
zoo_app - Application User
zoo_app - Application User
- Username:
zoo_app@localhost - Password:
app_password(change in production) - Privileges: SELECT, INSERT, UPDATE, DELETE on
zoo_arcadia.* - Purpose: Runtime application queries
Verify Installation
Check that everything is working:Common Issues
Port Already in Use
Port Already in Use
If port 3001 is busy, use a different port:Update
gulpfile.js proxy settings accordingly.Database Connection Errors
Database Connection Errors
- Verify MySQL/MariaDB is running
- Check credentials in
.env - Ensure the
zoo_arcadiadatabase exists - Test connection:
mysql -u root -p
Asset Compilation Fails
Asset Compilation Fails
- Clear
node_modules/:rm -rf node_modules && npm install - Check Node.js version:
node --version(requires 18+) - Run Gulp tasks individually:
npx gulp buildCss,npx gulp buildJs
SMTP Errors (Windows)
SMTP Errors (Windows)
- Install SSL certificates (see PHP Configuration section)
- Use an app-specific password for Gmail
- Test with a different SMTP provider
Next Steps
Docker Deployment
Learn how to run Zoo Arcadia with Docker
Database Schema
Explore the database structure
Asset Pipeline
Understand the build process
API Reference
Browse the API documentation