Update/Upgrade
Anleitungen zum Durchführen von Updates und damit verbundenen Tätigkeiten.
- Update auf Linux
- Update auf Windows
- Datenbankmigration nach Update
- Suchindex nach Update reindizieren
- PHP Update unter Windows
- Apache Update unter Windows
Update auf Linux
Um Squeeze auf einem Linux System upzudaten kann wie folgt vorgegangen werden:
Datenbanksicherung durchführen
# Alle Datenbanken
mysqldump --user=root -p --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --all-databases --result-file="/var/www/html/2021-01-01_all_databases.bak"
# Eine bestimmte Datenbank
mysqldump --user=root -p --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events "databasename" --result-file="/var/www/html/2021-01-01_databasename.bak"
Cronjobs stoppen
# Liste der Cronjobs öffnen
crontab -e -u www-data
# z.B. folgenden cronjob mit einen vorangestellten # deaktivieren
#*/5 * * * * php /var/www/html/Squeeze/jobs/EmailProcessing.php client.server.net
Services stoppen
systemctl stop squeeze-worker@1.timer
systemctl stop squeeze-worker@1.service
systemctl stop rabbitmq-server.service
systemctl stop elasticsearch.service
systemctl stop mariadb.service
systemctl stop apache2.service
Ab Version 1.10.0 Repository verschieben
Ab der Version 1.10.0 muss das Repository verschoben werden. Wenn eine Version kleiner 1.10.0 ein Update erhalten soll, kann das Repository mit folgendem Befehl verschoben werden:
mv /var/www/html/Squeeze/repository/ /var/www/html/
mkdir /var/www/html/repository/config
mkdir /var/www/html/repository/config/clients
mv /var/www/html/Squeeze/config/server.json /var/www/html/repository/config/server.json
mv /var/www/html/Squeeze/config/server.installed /var/www/html/repository/config/server.installed
mv /var/www/html/Squeeze/config/clients/*.json /var/www/html/repository/config/clients/
mv /var/www/html/Squeeze/config/clients/*.installed /var/www/html/repository/config/clients/
Die *.json
Konfigurationsdateien müssen editiert werden, da das Repository der Mandanten verschoben wurde.
Backup der aktuellen Squeeze Version
Um eventuell wieder auf die letzte aktive Version zurückzukommen muss der aktuelle Stand gesichert werden.
cd /var/www/html
tar cfvz "$(date '+%Y-%m-%d')_Squeeze.tar.gz" Squeeze/
Update per git fetch und pull
# enter the Squeeze directory
cd /var/www/html/Squeeze
# ggf. git clone
git clone https://langer@dev.azure.com/DEXPRO/DEXPRO%20Platform/_git/SQUEEZE .
# fetch the available branches
git fetch
# pull the branch (hard reset)
git reset --hard origin/develop_or_another_branch
Worker Konfiguration übernehmen
Rechte aktualisieren
cd /var/www/html
chown -R www-data Squeeze/
chmod -R 755 Squeeze/
Services starten
systemctl start mariadb.service
systemctl start apache2.service
systemctl start rabbitmq-server.service
systemctl start elasticsearch.service
systemctl start squeeze-worker@1.timer
systemctl start squeeze-worker@1.service
System Migration per API ausführen
Die Datenbank Migrationen müssen noch manuell über die API geprüft bzw. ausgeführt werden. http://client.server.net/api/migrationStatus
Update auf Windows
Diese Seite dokumentiert, wie Updates von Squeeze auf Windows durchzuführen sind.
Die Update-Schritte sind i. d. R. gleich, je nach Produktversion können allerdings einzelne Sonder-Tätigkeiten wie z. B. das aktivieren einer PHP-Extension notwendig sein.
Grundsätzliches Vorgehen
1. Update des htdocs Ordners
Der htdocs enthält den Programmcode von Squeeze und stellt i. d. R. die einzige zu aktualisierende Komponente dar.
Schritte
- Datenbankbackup erstellen!
- SQUEEZE Dienste beenden
- htdocs Verzeichnis sichern
- neues htdocs Verzeichnis im SQUEEZE Verzeichnis entpacken
- Im htdocs\Worker-Verzeichnis muss die umzug.json enthalten sein, sie muss aus dem gesicherten htdocs Verzeichnis kopiert werden.
- Ggf. sicherstellen ob Jobs aus dem alten htdocs\jobs Verzeichnis in das neue htdocs\jobs Verzeichnis kopiert werden müssen.
- SQUEEZE Dienste wieder starten
- Datenbankmigration über die Web-Oberfläche ausführen:
Zur Durchführung einer Datenbankmigration muss unter dem Reiter Migrationen das Symbol "Migration Ausführen" angeklickt werden.
Tragen Sie nun den Mandantennamen in das angegebene Feld ein und klicken Sie auf "Speichern" um die Migration auszuführen.
Nun kann über den Reiter "System" die aktuelle Version des Systems angezeigt werden.
2. Update von anderen Komponenten
Die folgenden Schritte sind nicht bei jedem Update notwendig. Sie müssen nur beachtet werden, falls eine der vermerkten Versionen zum Einsatz kommt und die notwendigen Voraussetzen nicht erfüllt sind.
PHP Extension - sodium (ab Squeeze Version 2.3.0)
Ab Squeeze 2.3.0 wird die PHP Extension Sodium benötigt.
Die Datei kann unter \Squeeze\php\php.ini gefunden werden. In der Datei nach "Sodium" suchen und in der entsprechenden Zeile das Semikolon entfernen:
Auf manchen Windows Systemen reicht es nicht aus die sodium Extension hinzuzufügen. In diesem Fall muss zusätzlich das PHP Verzeichnis z.B. D:\SQUEEZE\php in die PATH Umgebungsvariable aufgenommen werden.
Anschließend muss der Webserver einmal neu gestartet werden.
OpCache deaktivieren (jede Squeeze Version)
- opcache für CLI Prozesse deaktivieren (opcache.enable_cli=0 in der php.ini)
Chromium (ab Squeeze Version 1.7.0)
Ab Squeeze 1.7.0 wird Chromium für das PDF-Rendering von E-Mails verwendet. [Download]
Der Inhalt des Downloads muss in den Ordner htdocs\lib\chromium kopiert werden. Hierbei handelt es sich um eine "google-freie" Version von Chromium in der Version 111.0.5563.71. Die Funktionalität wurde mit dieser Chromium-Version getestet und nur in dieser Version kann eine fehlerfreie Ausführung gewährleistet werden.
Ab Squeeze 2.4.0: Wenn Chromium erfolgreich eingebunden ist, kann dies in der in der Systemprüfung unter dem Punkt "CLI Services - Health Checks for availability" eingesehen werden. Ansonsten wird hier ein Fehler angezeigt.
Datenbankmigration nach Update
Migration eines einzelnes Mandanten via UI
Zur Durchführung einer Datenbankmigration muss unter dem Reiter Migrationen das Symbol "Migration Ausführen" angeklickt werden.
Tragen Sie nun den Mandantennamen in das angegebene Feld ein und klicken Sie auf "Speichern" um die Migration auszuführen.
Migration aller Mandanten via CLI
Im Squeeze-Ordner (htdocs unter Windows) befindet sich ein Ordner cli
mit Skripten für die Administration. Hier kann das PHP-Skript migrate-tenant.php
ausgeführt werden um einen einzelnen Mandanten zu aktualisieren.
Mit dem Skript migrate-server.php
werden alle Kommandozeilenbefehle gelistete, die benötigt sind, um alle Mandanten eines Servers zu aktualisieren.
Beispiele
php migrate-tenant.php mein-mandant.local.intern
führt die Migrationen für einene Mandanten aus.
php migrate-server.php
listet alle Befehle auf, die alle installierten Mandanten migrieren würden.
(Linux) php migrate-server.php | bash
migriert sequentiell alle Mandanten.
Suchindex nach Update reindizieren
Reindizierung einer einzelnen Dokumentenklasse
Um den Suchindex einer einzelnen Dokumentenklasse wiederzuerstellen, kann dieser Button genutzt werden:
Aktuell Q2 2023 ist diese Funktion noch synchron. D. h., dass bei einer Dokumentenklasse mit vielen Dokumenten eine lange Wartezeit entsteht und der User, der diesen Knopf drückt, entsprechend lang warten muss.
Migration via CLI / Konsole
Ab Squeeze 2.5
Mit dem Squeezer CLI ist die Indizierung eines einzelnen Mandanten mittels tenant:reindex
und des gesamten Servers mittels server:reindex
möglich.
# Hilfe für Mandanten-Reindizierung anzeigen:
./squeezer tenant:reindex --help
Description:
Reindex documents of all document classes
Usage:
tenant:reindex <tenant>
Arguments:
tenant Tenant identifier (host / domain) of the tenant to run the command for.
Options:
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Vor Squeeze 2.5
Im Squeeze-Ordner (htdocs unter Windows) befindet sich ein Ordner cli
mit Skripten für die Administration. Hier kann das PHP-Skript reindex-tenant.php
ausgeführt werden um alle Dokumentenklassen eines einzelnen Mandanten zu aktualisieren.
Mit dem Skript reindex-server.php
werden alle Kommandozeilenbefehle gelistete, die benötigt sind, um dies für alle Mandanten eines Servers durchzuführen.
Diese Migrationsskripte reindizieren Dokumente aller Dokumentenklassen.
Beispiele
php reindex-tenant.php mein-mandant.local.intern
reindiziert einen Mandanten.
php reindex-server.php
listet alle Befehle auf, die alle installierten Mandanten reindizieren würden.
(Linux) php reindex-server.php | bash
reindiziert sequentiell alle Mandanten.
PHP Update unter Windows
Aktuell wird von Squeeze nur die PHP Version 7.4.x unterstützt. Da in regelmäßigen Abständen neue Hotfixes für PHP erscheinen wird hier der Updateprozess beschrieben.
Aktuell prüfen wir die Umstellung auf die php Version 8.1.x. Im Moment sind die Versionen 8.x.x jedoch noch nicht freigegeben.
Was ist zu tun?
-
Herunterladen der aktuellen PHP Version aus unserem Forum (Anmeldung erforderlich)
-
Stoppen der Dienste 01_SQUEEZE_WebServer und 05_SQUEEZE_Worker
-
Backup des aktuellen PHP Verzeichnisses
C:\SQUEEZE\php verschieben nach C:\SQUEEZE\backup\php -
Entpacken der heruntergeladenen Zip-Datei in das Squeeze Basisverzeichnis
-
Squeeze Basisverzeichnis auswählen
- Anschließend die php.ini aus dem Ursprungsverzeichnis in das neue Verzeichnis kopieren
C:\SQUEEZE\backup\php\php.ini kopieren nach C:\SQUEEZE\php\php.ini -
Dienst 01_SQUEEZE_WebServer starten
- In SQUEEZE anmelden und unter System Prüfung die PHP Version kontrollieren
- Dienst 05_SQUEEZE_Worker starten
Apache Update unter Windows
Aktuell wird von Squeeze nur die Apache/2.4.x unterstützt. Da in regelmäßigen Abständen neue Hotfixes für Apache erscheinen wird hier der Updateprozess beschrieben.
Was ist zu tun?
-
Herunterladen der aktuellen Apache Version aus unserem Forum (Anmeldung erforderlich)
-
Stoppen der Dienste 01_SQUEEZE_WebServer und 05_SQUEEZE_Worker
-
Backup der aktuellen Version für einen eventuellen Rollback z.B. C:\SQUEEZE\apache verschieben nach C:\SQUEEZE\backup\apache
-
Entpacken der Zip-Datei in das Squeeze Basisverzeichnis (z.B. C:\Squeeze\)
-
Squeeze Basisverzeichnis auswählen
- Anschließend den Ordner conf aus dem Ursprungsverzeichnis in das neue Verzeichnis kopieren
C:\SQUEEZE\backup\apache\conf kopieren nach C:\SQUEEZE\apache\conf - Eventuell konfigurierte SSL Zertifikate müssen ebenfalls übernommen werden.
In der Regel liegen diese Zertifikate unter D:\SQUEEZE\apache\conf\ssl* und werden daher schon durch den vorherigen Schritt berücksichtigt. -
Dienst 01_SQUEEZE_WebServer starten