Zum Inhalt springen
FlinkISO

FlinkISO · Kostenloses Open-Source-QMS

Updater aktualisieren

Updater installieren, Anwendungsupdates ausführen und häufige Server- und Installationsmeldungen beheben.

Mit dieser Anleitung installieren Sie den aktuellen FlinkISO-Updater und laden anschließend Anwendungsupdates direkt aus FlinkISO herunter. Das Updater-Paket ersetzt drei Anwendungsdateien. Es installiert weder den Server noch die Anwendung neu.

Für ältere Downloads: Diese einmalige Installation des Updaters ist für FlinkISO-Anwendungen erforderlich, die am oder vor dem 10. September 2026 heruntergeladen wurden. Ersetzen Sie auch einen älteren Updater, wenn er weiterhin „PHP cURL and ZipArchive extensions are required“ meldet. Das aktuelle Paket verwendet das Kommandozeilenprogramm unzip anstelle von PHP ZipArchive.

FlinkISO-Updater.zip herunterladen

1. Updater aktualisieren

1.1 Ubuntu / Linux: den Updater mit drei Befehlen aktualisieren

Führen Sie diese Befehle in Ihrem SSH-Terminal aus. Ersetzen Sie /var/www/html/flinkiso durch Ihren Installationspfad, falls dieser abweicht. Sichern Sie vor dem Update Ihre vorhandenen Anwendungsdateien und die Datenbank.

curl -fL https://www.flinkiso.com/flinkiso-updates/FlinkISO-Updater.zip -o /tmp/FlinkISO-Updater.zip
unzip -o /tmp/FlinkISO-Updater.zip -d /tmp/flinkiso-updater
sudo cp -r /tmp/flinkiso-updater/app/. /var/www/html/flinkiso/app/

Melden Sie sich anschließend als Administrator an und klicken Sie im oberen Menü auf das Downloadsymbol .

app/. im Kopierbefehl bedeutet „den Inhalt von app kopieren“. So werden die drei Updater-Dateien in die vorhandene Anwendung eingefügt, ohne einen zusätzlichen Ordner app/app anzulegen. Die ZIP-Datei enthält weder Ihre core.php noch Datenbankeinstellungen oder hochgeladene Dateien.

Falls curl oder unzip auf Ubuntu / Debian fehlt, installieren Sie die Programme einmalig:

sudo apt install curl unzip

Das Kopieren der Dateien erfordert normalerweise keinen Apache-Neustart. Verwenden Sie die Befehle zur Fehlerbehebung in Abschnitt 4 nur, wenn ein Fehler auftritt.

1.2 Updater manuell aktualisieren

Verwenden Sie diese Alternative, wenn Sie die ZIP-Datei auf Ihren Computer herunterladen und die Dateien mit einem Dateiübertragungsprogramm kopieren möchten. Sie, Ihr Hosting-Anbieter oder Ihr Serveradministrator benötigen Zugriff auf die Installationsdateien.

  1. Vorhandene Installation sichern. Sichern Sie die Anwendungsdateien und erstellen Sie eine separate Datenbanksicherung, bevor Sie Dateien ersetzen. Die datierte Sicherung des Updaters enthält Anwendungsdateien; sie ist kein Datenbankexport.
  2. Paket herunterladen. Speichern Sie FlinkISO-Updater.zip und entpacken Sie die Datei auf Ihrem Computer.
  3. Installationsverzeichnis ermitteln. Dies ist das Verzeichnis, das app und lib enthält. Wenn Ihre Website in einem Unterverzeichnis wie /flinkiso/ läuft, verwenden Sie das Stammverzeichnis dieser Installation.
  4. Dateien in diese Installation kopieren. Führen Sie den entpackten Ordner app mit dem vorhandenen Ordner app zusammen und lassen Sie die drei enthaltenen Dateien überschreiben. Löschen oder ersetzen Sie nicht den gesamten Anwendungsordner und legen Sie keinen zusätzlichen Ordner app/app an.
  5. Servervoraussetzungen prüfen. Die PHP-Umgebung, die FlinkISO ausführt, benötigt cURL und eine aktivierte Funktion exec(). Auf dem Server muss das Kommandozeilenprogramm unzip verfügbar sein. PHP ZipArchive wird für dieses Paket nicht benötigt.
  6. Anwendungsupdater öffnen. Melden Sie sich mit einem berechtigten Administratorkonto an und öffnen Sie den Updater über das Downloadsymbol im oberen Menü. Aktualisieren Sie die Seite nach dem Ersetzen der Dateien und fahren Sie mit Abschnitt 2 fort.

Im Paket enthaltene Dateien

app/Controller/BillingController.php
app/Lib/FlinkisoUpdater.php
app/View/Billing/update.ctp

Kopieren Sie alle drei Dateien aus demselben Paket. app/Config/core.php, Datenbankzugangsdaten und Kundenuploads sind nicht enthalten. Behalten Sie diese installationsspezifischen Dateien unverändert bei.

2. Anwendungsupdates aus FlinkISO ausführen

Planen Sie das Update für einen Zeitpunkt, an dem andere Benutzer abgemeldet sind. Bewahren Sie die Datenbanksicherung separat auf und stellen Sie ausreichend freien Speicherplatz für Anwendungssicherung, Download und Installationsarbeitsverzeichnis bereit.

  1. Auf das Downloadsymbol klicken. Verwenden Sie die gewünschte Installation und ein berechtigtes Administratorkonto.
  2. Sichern und aktualisieren auswählen. Der Updater prüft die konfigurierte GitHub-Quelle und bereitet eine datierte Anwendungssicherung vor. In der englischen Oberfläche heißt die Schaltfläche „Back up and update“.
  3. Bei vorhandener Tagessicherung entscheiden. Sie können eine weitere Sicherung in einem Unterordner mit Uhrzeit anlegen oder eine abgeschlossene Sicherung vom selben Tag wiederverwenden. Unvollständige Sicherungen können nicht wiederverwendet werden.
  4. Seite geöffnet lassen. Animierte Anzeigen und Fortschrittsbalken zeigen Verbindung, Sicherung, Download, Entpacken, Dateiprüfungen, SQL-Verarbeitung und Installation an. Starten Sie kein zweites Update in einem anderen Tab.
  5. Abschlussmeldung abwarten. Der Updater lädt das konfigurierte Archiv herunter, entpackt es, verarbeitet die SQL-Anweisungen und installiert die Anwendungsdateien. Fehler einzelner SQL-Anweisungen werden protokolliert und übersprungen, damit die Verarbeitung fortgesetzt werden kann.
  6. Ergebnis prüfen und Anwendung testen. Prüfen Sie die Abschlussmeldung, melden Sie sich bei Bedarf erneut an und testen Sie wichtige Seiten. Klären Sie Installations- oder Wiederherstellungsfehler vor einem erneuten Versuch. Falls Hinweise zu ApiPath oder PDFTkPath angezeigt werden, lassen Sie diese Einstellungen gesondert prüfen; der Updater verändert die core.php nicht.

Woher stammen die Updates?

Ohne kundenspezifische Repository-Einstellung verwendet der Updater Techmentis/FlinkISO-QMS-Updates. Eine Kundeninstallation kann stattdessen ein konfiguriertes privates GitHub-Repository verwenden. URL, Archivordner und persönlicher Zugriffstoken (PAT) werden in der core.php angegeben. Alle drei Werte müssen vollständig sein. Veröffentlichen Sie den PAT niemals in einer Supportnachricht oder einem Bildschirmfoto.

Speicherorte für Sicherungen und Protokolle

Pfad relativ zum InstallationsverzeichnisZweck
backup/YYYY-MM-DD/Datierte Sicherung der Anwendungsdateien. Eine weitere Sicherung am selben Tag wird in einem Unterordner mit Uhrzeit abgelegt.
backup/.updater/<run-id>/Ausführungsprotokoll, Arbeitsdateien und Informationen zur Dateiwiederherstellung. Der führende Punkt macht den Ordner in manchen Dateibrowsern unsichtbar.
app/webroot/updates/Heruntergeladenes Archiv und entpacktes Update-Arbeitsverzeichnis. Frühere Update-Downloads werden bei einem neuen Durchlauf bereinigt.

Der aktuelle Updater erhält vorhandene Konfigurationen, hochgeladene Dateien und installierte PO-/MO-Übersetzungskataloge. Die SQL-Verarbeitung bietet keine Datenbankrücksetzung: Eine Datenbankänderung kann bestehen bleiben, auch wenn ein späterer Dateivorgang fehlschlägt.

3. Wer darf die Anwendung aktualisieren?

Person oder KontoBerechtigung
Angemeldeter AnwendungsadministratorDarf Updates ausführen, wenn das Administratorkennzeichen des Kontos aktiviert ist.
Superuser ohne AdministratorzugriffDie Superuser-Rolle allein berechtigt nicht zur Ausführung von Anwendungsupdates.
Normaler AnwendungsbenutzerDarf den Updater nicht ausführen. Wenden Sie sich an einen Anwendungsadministrator.
Serveradministrator / Hosting-AnbieterKann das erste Updater-Paket kopieren, PHP und unzip konfigurieren, Eigentümer und Berechtigungen korrigieren sowie bei Sicherung und Wiederherstellung helfen. Serverzugriff ersetzt die erforderliche Anmeldung in der Anwendung nicht.

Das Webserverkonto der Anwendung muss die zu sichernden Dateien lesen und in den Sicherungsordner, das Update-Arbeitsverzeichnis und die zu ersetzenden Anwendungspfade schreiben können. Für ein SSH- oder Dateiübertragungskonto können andere Berechtigungen gelten.

4. Fehler, Warnungen und Hinweise

Nutzen Sie den genauen Meldungstext und den betroffenen Pfad, um die Ursache einzugrenzen. Bewahren Sie das Ausführungsprotokoll für Supportanfragen auf. Entfernen Sie Tokens und Zugangsdaten aus allen Informationen, die Sie weitergeben. Die folgenden Meldungen sind zur Wiedererkennung im englischen Original aufgeführt.

Meldung oder ProblemBedeutung und Lösung
PHP cURL and ZipArchive extensions are requiredEs wird noch ein älterer Updater ausgeführt. Laden Sie das aktuelle ZIP-Paket herunter und ersetzen Sie alle drei Dateien in der richtigen Installation. Bleibt die Meldung bestehen, lassen Sie den PHP-Opcode-Cache prüfen. Für das aktuelle Paket muss PHP ZipArchive nicht installiert werden.
Missing required PHP extension: cURL (php-curl)cURL fehlt in der PHP-Umgebung dieser Website. Lassen Sie die Erweiterung für genau diese Umgebung aktivieren. Kommandozeilen-PHP kann andere Erweiterungen als Apache oder PHP-FPM verwenden.
PHP exec() is required to run command-line unzipDer Server deaktiviert die PHP-Funktion zum Starten von unzip. Fragen Sie den Hosting-Anbieter, ob sie für die Anwendung aktiviert werden kann. Das erneute Kopieren der ZIP-Datei ändert keine Serverbeschränkung.
Command-line unzip is requiredDas Programm unzip fehlt oder ist für das Webserverkonto nicht erreichbar. Lassen Sie es vom Administrator installieren oder zugänglich machen. Gemeint ist das Serverprogramm, nicht PHP ZipArchive.
No write permission, Cannot read/traverse oder Cannot create directoryDas Webserverkonto kann auf den gemeldeten Pfad nicht zugreifen. Lassen Sie Eigentümer, Schreibrechte und Zugriffsrechte auf Verzeichnisse einschließlich übergeordneter Ordner prüfen. Schreibzugriff nur auf backup behebt keine nicht ersetzbaren Anwendungsdateien. Vermeiden Sie pauschale 0777-Berechtigungen.
Permission denied beim Zugriff auf eine Sicherung über SSHVom Updater angelegte Sicherungsordner können nur für das Webserverkonto zugänglich sein. Ein berechtigter Serveradministrator kann mit passenden Rechten zugreifen oder dem Supportkonto Gruppen- beziehungsweise ACL-Zugriff gewähren. Ändern Sie dafür nicht die Berechtigungen aller Anwendungsdateien.
Incomplete paid repository configurationURL, Ordner oder PAT fehlen oder sind leer. Vervollständigen Sie die Kundenkonfiguration oder entfernen Sie die unvollständige Einstellung, um das Standard-Repository zu verwenden. Bei getenv() muss der Name einer tatsächlich auf dem Server definierten Umgebungsvariablen übergeben werden.
GitHub returned HTTP 401, 403 oder 404Prüfen Sie Repository-URL, Branch, Tokenberechtigungen, Ablaufdatum und Organisationsbeschränkungen. Ein privates Repository kann bei fehlendem Zugriff 404 zurückgeben. Bei 403 kann auch ein Anfragelimit erreicht sein; prüfen Sie die Details, bevor Sie Zugangsdaten ändern.
GitHub returned HTTP 504Ein Gateway oder Archivdienst hat das Zeitlimit überschritten. Prüfen Sie die Serververbindung, warten Sie und versuchen Sie es erneut. Ein 504 allein bedeutet nicht, dass der PAT falsch ist.
GitHub transfer failed oder leeres ArchivPrüfen Sie ausgehende Verbindungen, DNS, TLS-Zertifikate, Proxy-Einstellungen und freien Speicherplatz auf dem Anwendungsserver. Beheben Sie die gemeldete Ursache vor einem neuen Versuch.
Could not unzip the update archive, Archivordnerfehler oder keine Update-DateienLesen Sie die unzip-Details der Meldung. Prüfen Sie freien Speicherplatz und Berechtigungen des Arbeitsverzeichnisses. Der konfigurierte Branch muss einen Ordner app unter dem erwarteten Repository-Ordner enthalten. Laden Sie ein unvollständiges Archiv erneut herunter.
Tagessicherung bereits vorhanden oder keine abgeschlossene Sicherung wiederverwendbarWählen Sie, ob eine weitere Sicherung erstellt werden soll. Nur abgeschlossene Sicherungen können wiederverwendet werden. Laden Sie die Seite neu, wenn die Auswahl abgelaufen ist oder sich das Datum geändert hat.
Could not check the backup oder Invalid updater tokenLaden Sie die Seite neu und prüfen Sie, ob Sie noch als Administrator angemeldet sind. Besteht der Fehler weiter, prüfen Sie die fehlgeschlagene Anfrage und das Anwendungsprotokoll auf Serverfehler oder eine falsche Installations-URL.
Another update is runningWarten Sie, bis der aktive Durchlauf beendet ist. Lassen Sie bei einem scheinbar festhängenden Update den laufenden Prozess prüfen. Löschen Sie keine Sperrdateien und starten Sie keine konkurrierenden Updates.
Fehler einzelner SQL-Anweisungen im ProtokollDer Updater protokolliert SQL-Fehler, überspringt die betroffene Anweisung und fährt fort. Doppelte Spalten, Tabellen oder Zeilen können auftreten, wenn eine Anweisung bereits ausgeführt wurde. Andere Fehler können auf fehlende Änderungen hinweisen; lassen Sie das Protokoll vom Datenbankadministrator prüfen. Detaillierte SQL-Warnungen werden normalerweise nicht als blockierende Meldungen angezeigt.
Copy failed, Cannot publish oder File rollback attemptedEine Datei konnte nicht kopiert oder ersetzt werden. Prüfen Sie beide genannten Pfade, Eigentümer, Speicherplatz und Konflikte mit temporären Dateien. Eine Dateiwiederherstellung kann versucht worden sein, während SQL-Änderungen bereits übernommen wurden. Prüfen Sie Wiederherstellungsprotokoll und Datenbankzustand vor einem neuen Versuch oder einer Rücksicherung.
A previous installation was interrupted… needs-reviewDiese Meldung kann von einem älteren Updater stammen. Bewahren Sie Sicherung und Wiederherstellungsprotokoll auf, prüfen Sie den vorherigen Durchlauf und bestätigen Sie, dass die drei aktuellen Dateien installiert sind. Entfernen Sie keine Markierungsdatei ohne Prüfung.
Symbolic link is not allowed oder Ablehnung symbolischer Links im ZIPDiese Meldungen stammen von älterem, restriktivem Updater-Code. Ersetzen Sie alle drei Updater-Dateien durch das aktuelle Paket. Bleibt derselbe Text bestehen, prüfen Sie Installationspfad und PHP-Opcode-Cache.
Update completed successfullyDer Update-Durchlauf ist abgeschlossen. Bewahren Sie die Sicherung auf und testen Sie die Anwendung. Da SQL-Fehler übersprungen werden, prüfen Sie das Protokoll, falls eine benötigte Funktion oder Datenbanktabelle fehlt.

Ubuntu / Debian: Befehle für häufige Serverprobleme

PHP cURL und exec() prüfen

Diese Befehle prüfen Kommandozeilen-PHP. Apache oder PHP-FPM kann eine andere PHP-Version oder Konfiguration verwenden. Vergleichen Sie das Ergebnis deshalb mit der Umgebung, die FlinkISO ausführt.

php -v
php --ini
php -r 'echo "cURL: ", extension_loaded("curl") ? "enabled" : "missing", PHP_EOL; echo "exec(): ", function_exists("exec") ? "enabled" : "disabled", PHP_EOL;'

Wenn die Website die PHP-Standardpakete der Distribution verwendet, installieren Sie cURL mit:

sudo apt install php-curl

Verwendet die Anwendung eine bestimmte PHP-Version, installieren Sie stattdessen das passende Paket. Beispiel für eine Website mit PHP 8.2:

sudo apt install php8.2-curl

Verwenden Sie das Paket für die bereits eingesetzte PHP-Version. Installieren Sie nicht eigens eine andere PHP-Version für den Updater. Weitere Informationen enthält die offizielle PHP-Anleitung zur Paketinstallation. Falls exec() deaktiviert ist, lassen Sie disable_functions in der PHP-Konfiguration der Website sowie mögliche Hosting-Beschränkungen prüfen.

Bei Bedarf nur den verwendeten PHP-Dienst neu starten

Für Apache mit PHP-Modul:

sudo systemctl restart apache2

Für PHP-FPM starten Sie stattdessen den tatsächlich verwendeten FPM-Dienst neu. Dieses Beispiel gilt für PHP 8.2; passen Sie die Version an Ihre Website an:

sudo systemctl restart php8.2-fpm

Sie müssen nicht beide Befehle ausführen. Ein Dienstneustart unterbricht Anfragen kurzzeitig. Führen Sie ihn deshalb im Wartungsfenster des Updates aus.

Schreibzugriff für das Webserverkonto ermöglichen

Verwenden Sie diese Befehle bei Schreib- oder Verzeichniszugriffsfehlern, wenn die Installation ihre Anwendungsdateien selbst aktualisieren soll. Die ACL-Befehle behalten vorhandene Eigentümer bei und geben dem angegebenen Webserverkonto Zugriff auf app und backup. Passen Sie beide Einstellungen an Ihre Installation an. Die Rechte werden nicht allen Benutzern gewährt.

(
    set -eu
    FLINKISO_ROOT="/var/www/html/flinkiso"
    FLINKISO_WEB_USER="www-data"

    sudo apt install acl
    sudo mkdir -p "$FLINKISO_ROOT/backup" "$FLINKISO_ROOT/app/webroot/updates"
    sudo setfacl -R -m "u:$FLINKISO_WEB_USER:rwX" \
        "$FLINKISO_ROOT/app" "$FLINKISO_ROOT/backup"
    sudo setfacl -m "u:$FLINKISO_WEB_USER:rx" "$FLINKISO_ROOT"

    sudo -u "$FLINKISO_WEB_USER" test -w "$FLINKISO_ROOT/backup"
    sudo -u "$FLINKISO_WEB_USER" test -w "$FLINKISO_ROOT/app/webroot/updates"
    sudo -u "$FLINKISO_WEB_USER" test -w "$FLINKISO_ROOT/app/Lib"
    echo "Backup, updates and library directories are writable."
)

Falls ein übergeordneter Ordner den Zugriff weiterhin verhindert, prüfen Sie den vollständigen Pfad mit namei -l /var/www/html/flinkiso/app/Lib/FlinkisoUpdater.php und lassen Sie die Zugriffsrechte dieses Ordners korrigieren. Unterstützt Ihr Hosting keine ACLs, verwenden Sie die dort vorgesehene Eigentümer- oder Gruppenberechtigung. Wenden Sie chmod -R 0777 nicht auf die Installation an.

Updater-Protokolle finden und private Sicherungen öffnen

Ersetzen Sie den Beispielpfad der Installation. Diese Diagnosebefehle lesen nur Informationen aus; sie entfernen keine Sicherungen, Sperren oder Wiederherstellungsdateien.

sudo ls -la /var/www/html/flinkiso/backup
sudo find /var/www/html/flinkiso/backup/.updater -maxdepth 2 -type f -name 'run.jsonl' -print

Öffnen Sie das passende Ausführungsprotokoll mit sudo less /vollstaendiger/pfad/zum/protokoll. Bewahren Sie es für den Support auf und entfernen Sie vor einer Weitergabe Zugangsdaten. Wenn Sie Updater-Dateien wiederherstellen müssen, verwenden Sie die vor dem Ersetzen angelegte Sicherung. Das Wiederherstellen dieser Dateien macht Datenbankänderungen eines späteren Anwendungsupdates nicht rückgängig.

Vor einer Supportanfrage

  • Notieren Sie Installations-URL, ungefähre Ausführungszeit und den genauen Fehlertext.
  • Bewahren Sie die datierte Sicherung und den zugehörigen Ausführungsordner unter backup/.updater/ auf.
  • Geben Sie an, ob der Fehler bei Sicherung, Download, SQL-Verarbeitung oder Dateiinstallation aufgetreten ist.
  • Teilen Sie relevante Protokolleinträge nur mit dem berechtigten Supportteam und entfernen Sie PATs und Zugangsdaten.
  • In der Cloud

    Testen Sie das Cloud-QMS 15 Tage lang. Keine Zahlung erforderlich. Eine kostenlose Schulung ist enthalten. Support per Live-Chat und E-Mail.

    Registrieren
  • Auf eigenem Server

    Laden Sie die kostenlose On-Premises-Edition der Qualitätsmanagementsoftware herunter. Installation, Schulung und Support sind bei Bedarf verfügbar.

    Kostenlos herunterladen