Ubuntu
Passwork Installationsanleitung zum Betriebssystem:
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
Die Anleitung verwendet umschaltbare Codeblöcke, um Befehle entsprechend den Betriebssystemversionen zu trennen.
1. Mindestsystemanforderungen
Passwork stellt keine Anforderungen an die Systemressourcen und die erforderliche Anzahl an Servern hängt von der Anzahl der aktiven Benutzer, der Menge der gespeicherten Daten und den Anforderungen an die Fehlertoleranz des Systems ab.
Bitte lesen Sie die vollständigen Systemanforderungen.
Wenn der Server über 2–4 GB RAM verfügt, empfehlen wir die Aktivierung einer SWAP-Datei.
2. Grundlegende Aktionen vor der Installation
Erhalten Sie root-Berechtigungen und aktualisieren Sie die lokale Paketdatenbank:
- shell
sudo -i
apt-get update
Installieren Sie den Apache2-Webserver und das Datenübertragungsdienstprogramm curl:
- shell
apt-get install -y apache2 unzip curl zip jq
3. PHP-Installation
Installieren Sie das Paket software-properties-common und fügen Sie das Repository ppa:ondrej/php hinzu:
- shell
apt-get install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
Aktualisieren Sie die lokale Paket- und Repository-Liste:
- shell
apt-get update
Installieren Sie PHP und Erweiterungsmodule:
- shell
apt install -y php8.3 php8.3-cli php8.3-bcmath php8.3-fpm php8.3-curl php8.3-gd php8.3-intl php8.3-ldap php8.3-mbstring php8.3-mysql php8.3-opcache php8.3-pgsql php8.3-soap php8.3-zip php8.3-sqlite3 php8.3-xml php8.3-dev php-pear
Ändern Sie die Menge an RAM, die für die Ausführung von PHP-Skripten verfügbar ist:
- shell
sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/php.ini
Es wird empfohlen, den Parameter memory_limit von 256M auf 512M oder höher zu erhöhen, wenn erwartet wird, dass eine große Anzahl von Benutzern Passwork verwenden wird.
Stellen Sie sicher, dass der Dienst php8.3-fpm ausgeführt wird:
- shell
systemctl status php8.3-fpm
Starten Sie den Dienst-Autostart und aktivieren Sie ihn, wenn er gestoppt ist:
- shell
systemctl start php8.3-fpm
systemctl enable php8.3-fpm
3.1 Installation des PHP-MongoDB-Treibers
Installieren Sie den PHP MongoDB-Treiber:
- shell
pecl install mongodb
Drücken Sie Enter, um die Standard-Build-Optionen zu akzeptieren.
Erstellen Sie Konfigurationsdateien zum Laden und Aktivieren von PHP MongoDB:
- shell
echo "extension=mongodb.so" | tee /etc/php/8.3/fpm/conf.d/20-mongodb.ini
echo "extension=mongodb.so" | tee /etc/php/8.3/cli/conf.d/20-mongodb.ini
4. Installation der MongoDB-Datenbank
Laden Sie den MongoDB-GPG-Schlüssel herunter und konvertieren Sie ihn in eine Datei:
- Ubuntu 24.04
- Ubuntu 22.04 20.04
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
Fügen Sie der Datei die Repository-Zeile hinzu:
- Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Aktualisieren Sie die Liste der verfügbaren Pakete:
- shell
apt-get update
Installieren Sie MongoDB mit dem Paketmanager apt:
- shell
apt-get install -y mongodb-org
Starten Sie den Dienst mongod.service:
- shell
systemctl start mongod.service
Dienst-Autostart aktivieren:
- shell
systemctl enable mongod.service
5. Abrufen und Konfigurieren von Passwork
Online
Besorgen Sie sich das Skript:
- wget
- curl
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
Das Installationsskript Passwork sollte sich nicht im Verzeichnis mit den Anwendungsserverdateien befinden.
Weisen Sie dem Skript Ausführungsrechte zu:
chmod +x passwork.sh
Standardmäßig führt das passwork.sh-Skript Folgendes aus:
- Erstellung einer versteckten
.script_env-Datei im aktuellen Verzeichnis; - Erstellung des Verzeichnisses
passwork_archivefür Passwork-Backups; - Herunterladen der neuesten verfügbaren Passwork-Version, Signatur und des öffentlichen Schlüssels;
- Installation des zuvor erhaltenen Archivs auf
/var/www/
Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skriptstartparameter verwenden.
Führen Sie das Skript aus:
sudo ./passwork.sh
Bei der ersten Ausführung fordert das Skript einen [API-Schlüssel](URL0 an und führt grundlegende Umgebungsprüfungen durch:

Beispiel für eine erfolgreiche Skriptausführung:

Offline
Rufen Sie das Skript auf einem anderen Computer mit Internetzugang ab:
- wget
- curl
- PowerShell
wget https://repos.passwork.pro/repository/linux/scripts/passwork.sh
curl -O https://repos.passwork.pro/repository/linux/scripts/passwork.sh
(New-Object System.Net.WebClient).DownloadFile("https://repos.passwork.pro/repository/linux/scripts/passwork.sh", "$PWD\passwork.sh")
Oder rufen Sie das passwork.sh-Skript manuell über den [Link](URL1 ab.
Das Installationsskript Passwork sollte sich nicht im Verzeichnis mit den Anwendungsserverdateien befinden.
Weisen Sie dem Skript Ausführungsrechte zu:
chmod +x passwork.sh
Bevor Sie passwork.sh ausführen, müssen Sie Folgendes tun:
- Erhalten Sie Passwork Version 7 von unserem [Kundenportal](URL0 (mandatory);
- Platzieren Sie es im Startverzeichnis oder verwenden Sie das Argument
--input, um den Speicherort anzugeben (erforderlich); - Erhalten Sie die [Archivsignatur](URL1 and [public key](URL2 of Passwork (optional if using the IC0 argument).
Standardmäßig führt das passwork.sh-Skript Folgendes aus:
- Erstellung des Verzeichnisses
passwork_archivefür Passwork-Backups; - Entpacken des Passwork-Archivs;
- Installation des zuvor erhaltenen Archivs auf
/var/www/
Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skriptstartparameter verwenden.
Führen Sie nach der Vorbereitung das Skript passwork.sh aus:
sudo ./passwork.sh -offline
Beispiel für eine erfolgreiche Offline-Skriptausführung:

6. Webserverkonfiguration für das HTTPS-Protokoll
Um einen ordnungsgemäßen Betrieb zu gewährleisten, ist die Verwendung des HTTPS-Protokolls erforderlich. Die Verwendung von HTTP führt zu Fehlern.
6.1 Generieren eines selbstsignierten SSL-Zertifikats
Erstellen Sie ein neues Verzeichnis zum Speichern des privaten Schlüssels und des Zertifikats:
- shell
mkdir /etc/apache2/ssl/
Generieren Sie ein selbstsigniertes X.509-Zertifikat für Apache2 mit OpenSSL:
- shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Common Name (CN)– Geben Sie die IP-Adresse oder den Hostnamen Ihres Servers an, damit dieser mit der Art und Weise übereinstimmt, wie Benutzer die Site erreichen (per Domänenname oder IP-Adresse);subjectAltName (SAN)– Übergeben Sie-addext 'subjectAltName=DNS:your.domain.name,IP:192.168.0.100'und ersetzen Sie den Hostnamen und das Beispiel IP durch die Werte, die Ihre Clients tatsächlich verwenden;
Browser und SAN – Browser verlassen sich bei der Validierung von HTTPS in erster Linie auf die Erweiterung Subject Alternative Name (SAN), nicht nur auf CN (Common Name). Um eine Nichtübereinstimmung der Hostnamen zu vermeiden, fügen Sie SAN-Einträge für DNS und IP ein, die mit den Adressen übereinstimmen, die Benutzer im Browser eingeben.
Legen Sie Zugriffsrechte für den root-Benutzer fest, um den privaten Schlüssel und das Zertifikat zu schützen:
- shell
chmod 600 /etc/apache2/ssl/*
6.2 Virtuellen Host für HTTPS-Zugriff konfigurieren
Bevor Sie den Webserver mit aktivierter SSL-Terminierung konfigurieren, wird empfohlen, die Konfigurationsfunktionen zu überprüfen.
Aktivieren Sie das Modul SSL in Apache2, damit der Server das Protokoll HTTPS unterstützen kann:
- shell
a2enmod ssl
Aktivieren Sie die Konfigurationsdatei für den virtuellen Host der Site mit den Verbindungseinstellungen SSL:
- shell
a2ensite default-ssl
Öffnen Sie die Konfigurationsdatei des virtuellen Hosts für die HTTPS-Verbindung:
- shell
nano /etc/apache2/sites-enabled/default-ssl.conf
Nehmen Sie die folgenden Änderungen vor:
- Fügen Sie die Zeile
ServerNamehinzu und ändern Siewww.example.comin die IP-Adresse oder Domäne des Servers (abhängig vom imCommon Namedes Zertifikats angegebenen Wert); - Kommentieren Sie die Zeile
DocumentRootaus und ändern Sie den Pfad zum Stammverzeichnis Passwork (/var/www/public).
- shell
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
- Fügen Sie die
<Directory>-Direktive nachServerNamehinzu:
- shell
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
- Aktualisieren Sie die Pfade zu den zuvor generierten Zertifikatsdateien:
- shell
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
- Ändern Sie den .php-Datei-Handler und geben Sie Proxy-Anfragen an den PHP-FPM-Socket an:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
- Überprüfen Sie nach dem Vornehmen von Änderungen, ob die Konfigurationsdatei des virtuellen Hosts mit dem Beispiel übereinstimmt:
- shell
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName passwork:443
DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
</IfModule>
Module aktivieren und Dienste neu starten:
- shell
a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2
7. Ausfüllen der Parameter-Checkliste
Wenn Sie zum ersten Mal eine Verbindung zu Passwork herstellen, müssen Sie die Parameter-Checkliste ausfüllen, bei der Folgendes durchgeführt wird:
- Überprüfung notwendiger Parameter
- Verbindung zur MongoDB-Datenbank herstellen
- Auswahl eines Datenverschlüsselungsmodus – Zufällig generierter Schlüssel zum Verschlüsseln von Daten in MongoDB
- Überprüfung des Lizenzschlüssels
Nachdem Sie die Checkliste ausgefüllt haben, werden Sie aufgefordert, den ersten Benutzer in Passwork zu erstellen, wo Sie einen Benutzernamen, ein Passwort und eine E-Mail-Adresse zum Senden von Benachrichtigungen angeben müssen.
Zusätzliche Komponentenparameter, Sicherheitseinstellungen und Passwork-Systemkonfigurationen sind im Abschnitt erweiterte Einstellungen verfügbar.