Installation
Ready in ten steps.
From the installation package to the green check. Examples for Plesk – on any other server with PHPWidely used programming language for websites. KLXM Studio is written in PHP and therefore runs on almost any common web hosting.php.net (opens in a new tab) 8.4 and HTTPSThe encrypted variant of HTTP: pages and form data are transmitted protected by TLS. Recognisable by “https://” in the address.en.wikipedia.org (opens in a new tab) it works the same way.
Requirements
What the server needs.
php bin/console health checks this automatically later.
-
PHP 8.4.1 or newer (FPM)
Extensions pdo_sqlite, sodium, gd, mbstring, dom, fileinfo, intl, phar, zlib; optional curl, exif, pdo_mysql. proc_open allowed (backup now, AI jobs).
-
SQLite 3.35 or newer
PHP uses the operating system’s SQLiteDatabase in a single file, without a separate database server. Ideal for small and medium-sized websites: easy to back up and to move.sqlite.org (opens in a new tab) library: Debian 12/13 and Ubuntu 22.04/24.04 are fine, RHEL/Alma/Rocky 8 and 9 are too old. Alternatively MySQLWidely used database servers for websites. MariaDB is a largely compatible, free continuation of MySQL.mariadb.org (opens in a new tab) per website.
-
Apache or nginx with HTTPS
A front controller (all addresses to index.php); HTTPS is required for login, passkeySign-in without a password: a key pair is stored on your device and unlocked with a fingerprint, face recognition or PIN. Passkeys are largely immune to phishing.fidoalliance.org (opens in a new tab) and calendar subscriptions.
-
No Node on the server
The installation package contains vendor/ and all built files. Composer 2, Node 22 and pnpm 10 only for development.
Step by step
How to install.
Commands run in the installation folder (via SSH, Plesk: “Websites & Domains → SSH terminal”).
-
Get the code
Either the installation package klxm-studio-<version>.zip from GitHub Releases (with vendor/ and checksum) – or clone the source and install the PHP dependencies.
GitHub git clone https://github.com/KLXM-Opensource/studio.git cd studio composer install --no-dev -
Upload
Copy the folder contents to httpdocs/ – without tools/node_modules, config/config.local.php, config/sites/ and the contents of storage/, public/media, public/sites, public/pools.
-
Document root on public
The domain points to httpdocs/public – code, database and keys stay outside the web root. PHP 8.4 or newer as FPM, display_errors off.
-
Clean URLs
Apache: these lines under “Additional Apache directives” (HTTP and HTTPS). nginx only: “location / { try_files $uri $uri/ /index.php$is_args$args; }” – the full nginx template is in the developer handbook.
Apache & nginx settings FallbackResource /index.php # pass the Authorization header for API and MCP SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1 -
HTTPS and write permissions
Enable the certificate with a 301 redirect. PHP may write to config/ (on first start), storage/, public/media, public/sites, public/pools, public/assets/ext and public/assets/fonts/installed.
-
First request and first account
The first request creates the database and config/config.local.php (with a random app_key and setup token); until the setup is done visitors see “A new website is coming soon”. Then open the setup – or create the account directly.
/admin/setup php bin/console setup:token # token and setup address php bin/console user:create name@example.org admin -
Choose kit and starter content
After the first sign-in the welcome screen appears: choose a kitIn KLXM Studio, the package of design and building blocks for a website: layout, colours, fonts and the matching blocks. A kit can be adapted or switched – the content stays. and decide whether starter content (sample pages, example texts) is installed – or without: empty home page, legal notice and privacy policy as templates. You can also set it in advance:
/admin/willkommen <?php // config/sites/default.php return ['hosts' => ['www.example.org'], 'theme' => 'basis', 'seed' => 'empty']; // seed: full | empty | ask -
Set up
Encryption (key pair for requests – the secret key is shown only once), e-mail sending with a test mail, canonical address; then the kit’s central details. The overview shows a checklist.
-
Scheduled tasks
Everything runs without cronScheduling service of the server that starts tasks regularly on its own – for example updating the search index, creating backups or fetching feeds.en.wikipedia.org (opens in a new tab), but some things only on the side. Recommended:
Plesk → Scheduled tasks */15 * * * * cd /path && php bin/console search:index --all 30 3 * * * cd /path && php bin/console search:index --all --full 15 4 * * * cd /path && php bin/console inbox:purge --all */5 * * * * cd /path && php bin/console ai:jobs --all 0 2 * * * cd /path && php bin/console site:backup --all --keep=14 -
Check
All green? Then the installation is done. /health returns the same state without secrets for your monitoring.
health php bin/console health
In detail with the nginx template, a custom admin address and special cases: developer handbook → Installation.
Contact
Talk to KLXM Crossmedia.
Installation, migration or hosting for your project – we are happy to help. We reply personally.
Am Schürmannshütt 40g
47441 Moers
Germany
- Phone
- +49 2841 889998-0
- info@klxm.de
- Website
- klxm.de (opens in a new tab)