Zum Hauptinhalt springen

Linux

info

Ab Version 7 von Passwork werden Aktualisierungen über git nicht mehr unterstützt. Für die Aktualisierung von Passwork haben wir ein Skript vorbereitet.

Online-Aktualisierung

  1. Skript herunterladen:
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
gefahr

Das Passwork-Aktualisierungsskript darf sich nicht im selben Verzeichnis wie die Anwendungsserver-Dateien befinden.

  1. Ausführungsrechte für das Skript zuweisen:
chmod +x passwork.sh

Standardmäßig führt das Skript passwork.sh Folgendes aus:

  • Erstellen einer versteckten Datei .script_env im aktuellen Verzeichnis;
  • Erstellen eines Verzeichnisses passwork_archive für die Passwork-Sicherung;
  • Abrufen der neuesten verfügbaren Version von Passwork, Signatur und öffentlichem Schlüssel;
  • Installation des zuvor erhaltenen Archivs nach /var/www/
Durchgeführte Aktionen
  1. Prüfung, ob alle erforderlichen Systemwerkzeuge installiert sind — php, curl, jq, zip, unzip, file, stat, find
  2. Prüfung der PHP-Version und Vergleich mit der erforderlichen Version (8.3)
  3. Prüfung der Erreichbarkeit des Passwork-Kundenportals zur Bestimmung des Installationsmodus
  4. Wenn Passwork bereits installiert ist (die Datei .env vorhanden ist), Wechsel in den Modus UPDATE; wenn die Datei nicht gefunden wird, Verwendung des Modus INSTALL
  5. Wenn die Datei .script_env existiert, Lesen und Abrufen des API-Schlüssels
  6. Wenn der API-Schlüssel nicht gesetzt ist, Aufforderung an den Benutzer zur Eingabe und Validierung des Formats
  7. Abrufen der Nummer der neuesten verfügbaren Version über API-Anfrage
  8. Vergleich der erhaltenen Version mit der aktuellen Passwork-Version
  9. Wenn eine neue Version verfügbar ist, Herunterladen des Archivs mittels Anfrage und API-Schlüssel
  10. Überprüfung des korrekten Empfangs des ZIP-Archivs
  11. Abrufen der digitalen Signatur und des öffentlichen Schlüssels
  12. Überprüfung des ZIP-Archivs mittels OpenSSL
  13. Entpacken des ZIP-Archivs in ein temporäres Verzeichnis
  14. Erstellen einer Sicherung der aktuellen Version
  15. Bereinigung des Verzeichnisses von der vorherigen Version unter Beibehaltung von Konfigurationsdateien und Protokollen
  16. Prüfung der Verzeichniszugriffsrechte
  17. Änderung der Eigentümerberechtigungen, wenn der Eigentümer nicht root ist
  18. Anpassung der OPcache-Einstellungen, wenn diese nicht konfiguriert sind
  19. Neustart des Webservers und des php-fpm-Dienstes
  20. Anschließend Ausführung des Versionsaktualisierungsbefehls update
info

Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, verwenden Sie — Skriptparameter

  1. Skript ausführen:
sudo ./passwork.sh

Beim ersten Start fordert das Skript den API-Schlüssel an und führt grundlegende Umgebungsprüfungen durch:

Abrufen des API-Schlüssels im Kundenportal

Beispiel einer erfolgreichen Skriptausführung:

Beispiel einer erfolgreichen Skriptausführung

Offline-Aktualisierung

Laden Sie das Skript auf einem anderen Rechner mit Internetzugang herunter:

wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
info

Alternativ können Sie das Skript passwork.sh manuell über den Link herunterladen

gefahr

Das Passwork-Aktualisierungsskript darf sich nicht im selben Verzeichnis wie die Anwendungsserver-Dateien befinden.

Ausführungsrechte für das Skript zuweisen:

chmod +x passwork.sh

Vor dem Ausführen von passwork.sh müssen Sie:

Standardmäßig führt das Skript passwork.sh Folgendes aus:

  • Erstellen eines Verzeichnisses passwork_archive für die Passwork-Sicherung;
  • Entpacken des Passwork-Archivs;
  • Installation des zuvor erhaltenen Archivs nach /var/www/
Durchgeführte Aktionen
  1. Prüfung, ob alle erforderlichen Systemwerkzeuge installiert sind — php, curl, jq, zip, unzip, file, stat, find
  2. Prüfung der PHP-Version und Vergleich mit der erforderlichen Version (8.3)
  3. Prüfung der Erreichbarkeit des Passwork-Kundenportals zur Bestimmung des Installationsmodus
  4. Wenn die Verbindung fehlschlägt oder das Flag --offline verwendet wird, Wechsel in den Offline-Modus
  5. Bestätigung der Installation im Offline-Modus
  6. Suche nach dem neuesten Archiv im Format Passwork-*.zip im Verzeichnis
  7. Extrahieren der Versionsnummer aus der ZIP-Datei und Prüfung, dass sie nicht kleiner als 070000 ist
  8. Wenn Passwork bereits installiert ist (die Datei .env vorhanden ist), Wechsel in den Modus UPDATE; wenn die Datei nicht gefunden wird, Verwendung des Modus INSTALL
  9. Vergleich der Archivversion mit der aktuellen Passwork-Version
  10. Verschieben der ZIP-Datei in ein temporäres Verzeichnis
  11. Suche und Verschieben der digitalen Signatur und des öffentlichen Schlüssels von Passwork
  12. Überprüfung des ZIP-Archivs mittels OpenSSL
  13. Entpacken des ZIP-Archivs in ein temporäres Verzeichnis
  14. Erstellen einer Sicherung der aktuellen Version
  15. Bereinigung des Verzeichnisses von der vorherigen Version unter Beibehaltung von Konfigurationsdateien und Protokollen
  16. Prüfung der Verzeichniszugriffsrechte
  17. Änderung der Eigentümerberechtigungen, wenn der Eigentümer nicht root ist
  18. Anpassung der OPcache-Einstellungen, wenn diese nicht konfiguriert sind
  19. Neustart des Webservers und des php-fpm-Dienstes
  20. Anschließend Ausführung des Versionsaktualisierungsbefehls update

Führen Sie nach der Vorbereitung das Skript passwork.sh aus:

sudo ./passwork.sh -offline

Beispiel einer erfolgreichen Skriptausführung:

Beispiel einer erfolgreichen Offline-Aktualisierung

Skriptparameter

-i, --input

Pfad zum Archiv im offline_mode. Definiert auch den Speicherort von .script_env, passwork_archives:

sudo ./passwork.sh -i "/home/administrator/passwork"

-o, --output

Installationspfad (Standard: /var/www):

sudo ./passwork.sh -o "/var/www/passwork"

-offline, --offline

Erzwungener Offline-Modus. Erfordert manuelle Vorbereitung:

sudo ./passwork.sh -offline

-insecure, --insecure

Zertifikatsüberprüfung überspringen (wird verwendet, wenn dem Server CA-Zertifikate fehlen):

sudo ./passwork.sh -insecure

-skip, --skip

Überprüfung der Passwork-Archivsignatur überspringen:

  sudo ./passwork.sh -skip