Installationsschritte, externe Bibliotheken, Migrationen und Umgebung

Die Installer-Schritte, Regeln für Basisschema und Migrationen, Ort und Installationswege der externen Bibliotheken, der Update-Manager, Sprachdateien und die Messungen der Systemprüfung.

Die Installation läuft auf dem Reiter „Systemprüfung und Installation“ der Bearbeitungsseite der Erweiterung als getrennte, idempotente AJAX-Schritte: check → composer → schema → migrate → defaults → register → finish. Die Installationsschaltfläche ist nur ohne rote Fehler aktiv.

Schritte

  1. Basisschema: install/schema/baseline.sql (nur CREATE TABLE IF NOT EXISTS), dann die Migrationen.
  2. Der Schritt defaults erzeugt das Cron-Geheimnis, falls es fehlt, und schreibt die Cron-Zeilen.
  3. Externe Bibliotheken, wenn die Webinstallation nicht laufen kann (z. B. exec gesperrt): libraries.zip mit dem cPanel-Dateimanager in den Storage-Ordner entpacken, dann „Bibliotheken installieren“; im Terminal ohne Composer php install/composer/install.php <storage> --from=<Paket oder Vendor-Ordner> (der temporäre Ordner wird auch bei Fehlern entfernt); mit Composer php install/composer/install.php <storage> [--composer=<Pfad>] — Composer wird im PATH, unter /opt/cpanel/composer/bin/composer und als ~/composer.phar gefunden.
  4. Cron ausführen: jede Minute php cron.php aus dem Framework-Stamm (empfohlen) oder die Worker-URL mit dem Endpunkt masterdata/cronqueue.run und dem Cron-Geheimnis (das Geheimnis erscheint nicht in Listen oder Logs).

Externe Bibliotheken

Composer-Pakete (install/composer/composer.json, PHP ≥ 8.0, Plattform 8.0.30) im gemeinsamen Vendor-Ordner des Frameworks mit Paketverzeichnis; aktualisierte Standardpakete werden aus einem Stage-Ordner an ihren Platz gebracht. Die Paketzeile der Systemprüfung zeigt Version und Ort.

PaketVersionZweck
tecnickcom/tcpdf^6.7PDF-Erzeugung (die PDF-Basis unterdrückt den Veraltungshinweis ab 6.9 nur aus TCPDF-Dateien)
setasign/fpdi, setasign/fpdf^2.6, ^1.8Import von PDF-Seiten (Wasserzeichen, Zusammenführen)
smalot/pdfparser^2.11PDF-Textextraktion
google/apiclient^2.15Drive-Speicher, Konvertierung (nur Drive-Dienst)
guzzlehttp/guzzle, psr7, promises, psr/http-message^7.15.2, ^2.13.2, ^2.6, ^1.1HTTP; Standardpakete werden innerhalb derselben Hauptversion aus Sicherheitsgründen aktualisiert
qualityunit/tnef-decoder^1.0E-Mail-Anhänge (optional)

Migrationen und Aktualisierung

  • Globales SemVer (install.json, derzeit 1.1.0). Neue Migrationen nur unter install/migrations/<Version>/, mit Kopf (@id, @requires, @skip-if, @post, @reversible), Präfix-Platzhalter in Tabellennamen, nur erweiternd (kein DROP, RENAME, keine Verengung, kein UPDATE ohne WHERE).
  • Der Runner zerlegt bedingte DDL für MySQL 5.7, läuft im Ausnahmemodus und protokolliert (Tabelle migration: Version, Stapel, Zeitpunkte, Dauer, Fehler, SHA-256-Prüfsumme, Art, Umkehrbarkeit). Die Datei einer angewandten Migration darf sich nicht ändern.
  • Update-Manager: signiertes Paket (Ed25519); Vorbereitung (Freigabe, Download, Signatur und Hash, Staging, Vorprüfung, Sicherung) und Aktivierung (Wartung, Delta-Sicherung, Migration aus dem Staging-Code, atomarer Codewechsel, Bibliotheksabgleich, Gesundheitsprüfung; bei Fehler automatischer Code-Rollback). Unabhängiges Wiederherstellungswerkzeug (CLI; Web nur im freigegebenen Fenster).

Sprachen

Jede Beschriftung stammt aus einem Sprachschlüssel in drei Sprachordnern (en-gb, hu-hu, de-de). Das ungarische Sprachpaket führt nach dem Kopieren die eigenen Übersetzungen der Erweiterung erneut zusammen. Dokumentsprache: die Sprache der Vorlage; E-Mails an Empfänger in der Benachrichtigungssprache der Person; der Datenraum wechselt die Sprache ohne Neuladen.

Umgebung

BereichAnforderung
PHP≥ 8.0.0 (≥ 8.2 empfohlen), 64 Bit empfohlen; Framework 4.0.2.x
Pflichterweiterungenmysqli, curl, mbstring, zip, dom, simplexml, libxml, openssl, sodium, gd, zlib, iconv, json, ctype
Empfohlen, optionalfileinfo, OPcache, soap; imap, exif, imagick, intl
inimemory_limit ≥ 128M (empfohlen 512M), max_execution_time ≥ 120 (empfohlen 300), upload_max_filesize ≥ 32M (empfohlen 64M), post_max_size ≥ Upload, max_input_vars ≥ 3000 (empfohlen 5000), file_uploads = On
DatenbankMariaDB ≥ 10.2.7 oder MySQL ≥ 5.7.8; Rechte: CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES; GET_LOCK(); utf8mb4
Beschreibbare Ordnerstorage, logs, cache, upload, image (Pflicht); extension (empfohlen)
Optionale Programmeghostscript, pdftotext, qpdf, tesseract (+hun), imagemagick, composer