Sym8 is a modern fork and continuation of the open-source CMS Symphony, originally created by Alistair Kearney and the Symphony community. It preserves the power of XSLT and the elegance of modular extensibility – brought up to date for modern PHP and developer workflows.
Sym8 intentionally starts at version 2.84.0, following a clear logic:
2: reflects the underlying Symphony codebase,84: indicates the maximum supported PHP version (8.4),0: denotes the patch level.
This versioning scheme is designed to restore trust among developers by making it immediately clear which PHP version is fully supported — without needing to read through changelogs or compatibility notes.
All standard HTML5 input types – including color, email, month, number, range, tel, time, url and week – are now natively supported in the Symphony Core. And even the good old radio button.
This enables native browser validation and improves accessibility and usability out of the box.
Sym8 ships with essential improvements and must-have extensions out of the box:
- 🌐 Database connection changed from utf8 to utf8mb4 (multibyte)
- ✅ Dashboard-Extension (required) — shows system environment (PHP version, available pages, data sources, sections) and includes a feed for upcoming Sym8 versions
- 🗜 HTML5-Extension: the trailing slash for self-closing elements is removed according to the recommendation of the W3C validator. Addional the HTML source code can be minified.
- ✨ Minimalist frontend with Pico CSS included for a clean start
- A webserver (known to be used with Apache, Litespeed, Nginx and Hiawatha)
- Apache’s
mod_rewritemodule or equivalent - PHP 8.0 - 8.4
- PHP’s LibXML module, with the XSLT extension enabled (
--with-xsl) - PHP’s built in json functions, which are enabled by default in PHP 5.2 and above; if they are missing, ensure PHP wasn’t compiled with
--disable-json gdorimagicklibrary
Sym8 also requires a MySQL-compatible database.
✅ Recommended:
- MariaDB 10.3 – 11.x
- MySQL 5.5 – 8.0
ONLY_FULL_GROUP_BY and check compatibility. Full support is planned for a future release.
-
Upload the entire
sym8folder to your webspace and let your domain (e.g. example.com) point to that directory.For example: If your server path is
/home/username/web/example.com, upload to/home/username/web/example.com/sym8and point the domain to that directory. -
Open the
installsubdirectory in your web browser (e.g., https://example.com/install/) and enter the following details:- Website name and email address for outgoing messages
- Time zone and date format
- Details for the database (user, password, server, port)
- Author details
-
Please note that Symphony creates three pages during installation:
- Home (simple
indexpage with Pico CSS) - Error page
403(for directories without an index file) - Error page
404
- Home (simple
-
After successful installation, you can log in to the backend at
/symphonyusing the credentials you just set.
✅ Safe to use the built-in update function.
Updates from Sym8 2.84.0 and later (e.g. future releases like 2.85.0) can be performed via the built-in update mechanism.
All database changes and bundled extensions are fully handled by the updater.
🚫 Do not use the built-in update function! ⚡
⛔ Older Symphony installations must not be updated via the built-in update mechanism. Doing so will break your installation irreversibly. There are two main reasons for this:
- Database changes: Sym8 uses
utf8mb4and introduces new columns in several tables. The old updater does not apply these changes, which will lead to severe errors. - Extensions: Legacy extensions that are not part of the Sym8 package can cause errors and malfunctions if carried over without review.
If you want to migrate an existing Symphony installation to Sym8, please proceed as follows:
- Back up your database and
/workspacedirectory. - Install Sym8 fresh in a new location (new database).
- Migrate content:
- Recreate your sections, data sources, and events in the new installation.
- Use the opportunity to modernize your fields:
Replace text fields with regex validation (for email or number formats) by the new native HTML5 fields (
email,number) to improve UX and mobile input handling. - Export your entries from the old instance via the extension Import/Export CSV.
- Import the entries into the new instance: The extension Import/Export CSV validates required fields and constraints (
required,min,max, etc.) during import. This helps detect and skip broken records from your old instance.
- Migrate workspace assets: Move templates, stylesheets, scripts, and other assets from your old
/workspaceinto the new one. - Review extensions: Only use extensions included in the Sym8 package. If you rely on custom or third-party extensions, check compatibility carefully before enabling them.
- Test thoroughly before going live.
