Skip to content
W
Sign in

Getting started

Install the WBengine 4.0 skeleton, review its Composer requirements, and run the bundled site locally before changing its content.

Requirements

  • PHP 8.3 or newer with mysqli and the extensions required by Composer dependencies.
  • MySQL 8 or MariaDB 10.6 or newer.
  • Apache with mod_rewrite, or Nginx with PHP-FPM.
  • Composer 2. Docker is optional.

The application requires wbengine/wbengine:^4.0. The framework currently brings firebase/php-jwt; its template engine and Markdown parser are included. Check package metadata for the exact PHP platform requirements of the release you install.

Docker quick start

git clone https://github.com/rrsoftcz/wbengine-skeleton-app
cd wbengine-skeleton-app
docker compose up --build

Open http://localhost:8080. On startup, the web container runs bin/wbe install: it creates and validates Settings.json, prepares the compiled-template directory and installs locked dependencies. The demo login is admin@example.com with password changeme. Change it before exposing the site.

Manual setup

Run php bin/wbe install to create and validate settings, prepare src/View/Compiled, and install dependencies from composer.lock. The command reports invalid JSON, unreadable settings, unwritable compiled cache and Composer failures. Never use chmod 777; grant write access to the PHP web-server user. For local debugging only, set debug to true or WBENGINE_DEBUG=1. Remove debug mode before going live.

php bin/wbe install

Create a database, import schemas/wbengine_skeletone_app_mysql_template.sql and then schemas/wbengine_skeletone_app_mysql_template_content.sql. Configure src/Config/Settings.json and point the web root to public/.

Installation and exception troubleshooting

In development, set debug to true in Settings.json to show the WBengine exception template with the exception type, message, file, line and stack trace. If settings are missing or malformed, use WBENGINE_DEBUG=1 only in a private development environment. Never expose debug output publicly. The production error page shows a safe explanation and reference code; find the full exception in the PHP or container error log under that code.

For upgrades, back up the database and apply pending scripts in schemas/migrations/ in order. Docker imports the schema and seed files only when it initializes a new database volume. Rebuilding the web image does not update an existing database.