Systemvoraussetzungen
Was der Server mitbringen muss, bevor Sie mit der Installation beginnen.
Prüfen Sie diese Liste vorher. Der Assistent prüft das Meiste selbst, aber ein Server ohne die nötigen Erweiterungen kommt nicht über Schritt 1 hinaus — und dann stehen Sie mit einem hochgeladenen Paket da und müssen beim Hoster nachfragen.
Der schnelle Test
Diese drei Befehle beantworten die wichtigsten Fragen:
php -v | head -1
php -m | grep -xE 'ctype|iconv|json|sodium|pdo_mysql|openssl|mbstring|redis|intl' | sort | tr '\n' ' '
php -r 'echo function_exists("proc_open") ? "proc_open ok" : "proc_open GESPERRT";'
Die zweite Zeile muss neun Namen ausgeben. Kommen weniger, fehlt die Differenz.
PHP
Mindestens 8.4. Eine Obergrenze ist nicht festgelegt; getestet wird gegen 8.4.
Erweiterungen — Pflicht
Alle neun werden vom Assistenten geprüft und blockieren die Installation, wenn sie fehlen.
| Erweiterung | Wofür |
|---|---|
ctype | Zeichentyp-Funktionen |
iconv | Zeichensatz-Umwandlung |
json | JSON |
sodium | Verschlüsselung der Zugangsdaten zu angebundenen Systemen |
pdo_mysql | Datenbanktreiber |
openssl | JWT-Schlüssel und Verschlüsselung |
mbstring | Mehrbyte-Zeichenketten |
redis | Zwischenspeicher und Warteschlangen im Echtbetrieb |
intl | Datums-, Zeit- und Zahlenformate je Sprache |
Zwei davon prüft
setup.shnicht:redisundintl. Das Skript läuft grün durch, der Assistent blockt dann rot. Prüfen Sie beide vorher selbst.
intlist dabei kein Komfort: Jede Geld-, Datums- und Zeitausgabe außerhalb von Deutsch läuft darüber, ohne Rückfall. Fehlt die Erweiterung, installiert der Server sauber und scheitert bei der ersten fremdsprachigen Ausgabe.
Erweiterungen — empfohlen
Diese blockieren nicht, schränken aber ein:
| Erweiterung | Ohne sie |
|---|---|
curl | Keine Anbindung externer Dienste und keine KI |
gd | Keine Vorschaubilder und Avatare. Für den Baukasten zusätzlich mit WebP-Unterstützung |
zip | Kein Export und Import über ZIP-Archive |
Weitere PHP-Anforderungen
proc_open()darf nicht gesperrt sein. Der Assistent führt jeden Einrichtungsschritt als
eigenen Prozess aus. Steht die Funktion in disable_functions, geht gar nichts.
- Eine auffindbare PHP-Kommandozeile ab 8.4. Der Assistent sucht selbst; findet er nichts,
fragt er nach dem Pfad.
post_max_sizeundupload_max_filesizemindestens 36 MB, passend zur Grenze im Webserver.
Datenbank
MariaDB oder MySQL. PostgreSQL wird nicht unterstützt.
| System | Mindestens | Freigegebene Linien |
|---|---|---|
| MariaDB | 10.11 (LTS) | 10.11 · 11.4 · 11.8 |
| MySQL | 8.0 | 8.0 · 8.4 |
Ältere Stände installieren mit einer Warnung, die Version ist bewusst kein Blocker. Für den Echtbetrieb gilt trotzdem: ein Stand ohne Sicherheitsupdates gehört nicht auf einen Server mit Geschäftsdaten.
Weiter brauchen Sie:
- Eine leere Datenbank in
utf8mb4. - Einen Benutzer mit vollen Rechten darauf, inklusive
CREATE,ALTERundINDEX. Ohne diese
drei brechen die Migrationen ab.
- Soll der Assistent die Datenbank selbst anlegen, braucht der Benutzer zusätzlich das Recht dazu.
Webserver
nginx oder Apache. Der Document-Root zeigt auf public/, nicht auf das Projektverzeichnis. Fertige Vorlagen liegen im Paket unter deploy/.
Was die Konfiguration können muss:
- Eine eigene Regel für
/install/mit Vorrang vor der allgemeinen PHP-Sperre. Fehlt sie,
liefert der Server den Quelltext des Installers aus, statt ihn auszuführen.
- Hochladegrenze mindestens 36 MB. Dateien werden als Base64 in JSON übertragen, das kostet ein
Drittel Aufschlag auf die 25 MB Nutzlast.
- Bei Apache:
FollowSymLinkssowiemod_rewrite,mod_headersundmod_deflate. - HTTPS mit gültigem Zertifikat. Die Anmeldung arbeitet mit sicheren Cookies; über HTTP
funktioniert sie nicht.
Dienste
Pflicht
| Dienst | Wozu | Ohne ihn |
|---|---|---|
| Hintergrund-Worker | Mail, Benachrichtigungen, Webhooks | Nichts davon wird zugestellt |
| Zeitplan-Verbraucher | Alle zeitgesteuerten Abläufe | Kein Termin läuft. Genau eine Instanz je Umgebung, sonst feuert alles doppelt |
| Cron oder systemd | Startet beides | Siehe oben |
| Chromium | Beleg-PDFs | Es entsteht kein Beleg. Das ist die Kern-Engine, kein Nebenweg |
| Mailversand | Zustellung | Keine Benachrichtigung erreicht ihren Empfänger |
Chromium wird leicht übersehen. Es steht weder in der Prüfung von
setup.shnoch in der Voraussetzungsliste des Assistenten. Wer nur die dortige Liste abarbeitet, richtet ein System ein, das keine einzige Rechnung als PDF erzeugen kann.Gebraucht wird
chromium,chromium-browser,google-chromeodergoogle-chrome-stableim Suchpfad. Liegt es woanders, tragen Sie den Pfad in die Konfiguration ein. Prüfen mit:php bin/console app:pdf:check
Optional
| Dienst | Wenn er fehlt |
|---|---|
| Redis-Server | Die Datenbank übernimmt Zwischenspeicher und Warteschlangen. Die PHP-Erweiterung redis ist trotzdem Pflicht |
| Mercure | Kein Zeichen-für-Zeichen-Streaming der KI-Antworten. Antworten kommen am Stück, Voreinstellung ist ohnehin aus |
| Collab-Dienst | Kein gleichzeitiges Bearbeiten. Das reguläre Speichern läuft weiter. Braucht Node ab 22 |
| OCR-Werkzeuge | Die Volltextsuche in Dokumenten findet nur Dateinamen. Das Modul ist voreingestellt aus |
Zusätzlich für den Ein-Datei-Weg
Wer über install.php installiert, statt das Paket selbst hochzuladen, braucht drei Dinge mehr. Die Datei prüft sie beim Aufruf und nennt jedes fehlende einzeln.
| Was | Wofür | Ohne es |
|---|---|---|
phar und zlib | Das heruntergeladene Archiv auspacken | Die Datei kann nicht entpacken und sagt das |
| Ausgehende HTTPS-Verbindung | Das Paket vom Update-Server holen | Es bleibt nur der Weg mit selbst hochgeladenem Paket |
| Rund 1,1 GB freier Plattenplatz | Archiv, entpacktes Archiv und Dateien liegen kurz gleichzeitig | Das Auspacken bricht ab |
phar und zlib sind bei praktisch jedem Anbieter an. Die ausgehende Verbindung ist der Punkt, der in abgeschotteten Umgebungen scheitert.
Der Ein-Datei-Weg selbst läuft auf jeder PHP-Version. Das ist Absicht: Nur so kann er melden, dass die Version zu alt für Octibiz ist, statt mit einer leeren Fehlerseite zu enden.
Zugang und Werkzeuge
- SSH-Zugang für
setup.sh. Bei reinem Web-Hosting genügen Datei-Upload und ein einmaliger
Skriptaufruf über das Panel.
flockfür die Überlappungssperre der Worker-Aufrufe im Cron.- Composer und Node werden auf dem Zielserver nicht gebraucht — solange Sie das vorgebaute
Paket verwenden und keine Plugins nachinstallieren. Sobald ein Plugin die Oberfläche neu bauen lässt, braucht die Instanz Node und die Frontend-Abhängigkeiten.
Arbeitsspeicher und Plattenplatz
Dafür gibt es keine belastbare Zahl, und wir nennen hier keine, die wir nicht belegen können. Zwei Anhaltspunkte:
- Jeder Hintergrund-Worker läuft mit einer Grenze von 256 MB und startet bei Überschreitung neu.
Voreingestellt sind zwei Worker.
- Beim Aktualisieren der Oberfläche liegt sie kurzzeitig doppelt auf der Platte. Halten Sie
entsprechend Platz vor.
Was der Assistent selbst prüft
Damit Sie wissen, worauf Sie sich nicht verlassen können:
| Wird geprüft | Wird nicht geprüft |
|---|---|
| PHP-Version, alle neun Erweiterungen | memory_limit, max_execution_time, Hochladegrenzen |
proc_open(), PHP-Kommandozeile | Freier Plattenplatz |
| Schreibrechte auf vier Verzeichnisse | HTTPS, Webserver-Typ, Rewrite-Regeln |
| Datenbank-Verbindung und -Version | Datenbank-Rechte (CREATE, ALTER, INDEX) |
| Vorhandensein der gebauten Oberfläche | Chromium |
Die vier Verzeichnisse mit Schreibrechten sind: das Projektverzeichnis selbst, var, config/jwt und public/uploads.
Weiter
- Installation — der Ablauf Schritt für Schritt
- Hintergrund-Verarbeitung — Worker und Zeitpläne einrichten
- Härtung und Sicherheit