Zum Hauptinhalt springen

Debian

info

Anleitung zur Installation von Passwork auf dem Betriebssystem:

  • Debian 11
  • Debian 12
gefahr

Die Anleitung verwendet umschaltbare Codeblöcke, um Befehle nach Betriebssystemversionen zu trennen.

1. Minimale Systemanforderungen

Passwork stellt keine hohen Anforderungen an die Systemressourcen, und die erforderliche Anzahl von Servern hängt von der Anzahl der aktiven Benutzer, dem Volumen der gespeicherten Daten und den Anforderungen an die Fehlertoleranz des Systems ab.

Machen Sie sich mit den vollständigen Systemanforderungen vertraut.

info

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-Rechte und aktualisieren Sie die lokale Paketdatenbank:

sudo -i 
apt-get update

Installieren Sie den Apache2-Webserver und das Datenübertragungsprogramm curl:

apt-get install -y apache2 unzip curl zip jq

3. PHP-Installation

Installieren Sie Pakete für die Arbeit mit HTTPS-Repositories:

apt-get install -y apt-transport-https lsb-release ca-certificates

Beschaffen und speichern Sie den GPG-Schlüssel des PHP-Repositorys:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Fügen Sie das PHP-Repository zur apt-Quellenliste hinzu:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

Aktualisieren Sie die lokale Paket- und Repository-Liste:

apt update

Installieren Sie PHP und die Erweiterungsmodule:

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 für PHP-Skripte verfügbare RAM-Menge:

sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php/8.3/fpm/php.ini
warnung

Es wird empfohlen, den Parameter memory_limit von 256M auf 512M oder höher zu erhöhen, wenn eine große Anzahl von Benutzern Passwork verwenden soll.

Stellen Sie sicher, dass der Dienst php8.3-fpm läuft:

systemctl status php8.3-fpm

Starten Sie den Dienst und aktivieren Sie den automatischen Start, falls er gestoppt ist:

systemctl start php8.3-fpm
systemctl enable php8.3-fpm

3.1 PHP-MongoDB-Treiber installieren

Installieren Sie den PHP-MongoDB-Treiber:

pecl install mongodb
gefahr

Drücken Sie Enter, um die Standard-Build-Optionen zu akzeptieren.

Erstellen Sie Konfigurationsdateien zum Laden und Aktivieren von PHP MongoDB:

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. MongoDB-Datenbank installieren

Laden Sie den MongoDB-GPG-Schlüssel herunter und fügen Sie ihn hinzu:

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

Fügen Sie das MongoDB-Repository zur Datei hinzu:

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Aktualisieren Sie die Liste der verfügbaren Pakete:

apt-get update

Installieren Sie MongoDB mit dem Paketmanager apt:

apt-get install -y mongodb-org

Starten Sie den Dienst mongod.service:

systemctl start mongod.service

Aktivieren Sie den automatischen Start des Dienstes:

systemctl enable mongod.service

5. Passwork beschaffen und konfigurieren

Online

Beschaffen Sie das Skript:

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

Das Passwork-Installationsskript 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 Skript passwork.sh Folgendes durch:

  • Erstellen einer versteckten .script_env-Datei im aktuellen Verzeichnis;
  • Erstellen des Verzeichnisses passwork_archive für Passwork-Sicherungen;
  • Beschaffen der neuesten verfügbaren Passwork-Version, Signatur und des öffentlichen Schlüssels;
  • Installation des zuvor beschafften Archivs nach /var/www/
info

Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skript-Startparameter verwenden.

Führen Sie das Skript aus:

sudo ./passwork.sh

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

Beispiel des Skriptstarts

Beispiel einer erfolgreichen Skriptausführung:

Erfolgreiche Skriptausführung
Offline

Beschaffen Sie das Skript auf einem anderen Rechner mit Internetzugang:

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

Oder beschaffen Sie das Skript passwork.sh manuell über den Link

gefahr

Das Passwork-Installationsskript 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:

  • Passwork Version 7 von unserem Kundenportal beschaffen (obligatorisch);
  • Im Startverzeichnis ablegen oder das Argument --input verwenden, um den Speicherort anzugeben (obligatorisch);
  • Die Archivsignatur und den öffentlichen Schlüssel von Passwork beschaffen (optional bei Verwendung des Arguments --skip).

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

  • Erstellen des Verzeichnisses passwork_archive für Passwork-Sicherungen;
  • Entpacken des Passwork-Archivs;
  • Installation des zuvor beschafften Archivs nach /var/www/
info

Um einen nicht standardmäßigen Installationspfad zu verwenden, die Zertifikatsüberprüfung zu deaktivieren oder das Verhalten zu ändern, können Sie Skript-Startparameter verwenden.

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

sudo ./passwork.sh -offline

Beispiel einer erfolgreichen Offline-Skriptausführung:

Erfolgreiche Offline-Skriptausführung

6. Webserverkonfiguration für das HTTPS-Protokoll

info

Für den korrekten Betrieb muss das HTTPS-Protokoll verwendet werden. Die Verwendung von HTTP führt zu Fehlern.

6.1 Selbstsigniertes SSL-Zertifikat generieren

Erstellen Sie ein neues Verzeichnis zum Speichern des privaten Schlüssels und des Zertifikats:

mkdir /etc/apache2/ssl/

Generieren Sie ein selbstsigniertes X.509-Zertifikat für Apache2 mit OpenSSL:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -subj '/CN=your.domain.name' -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
  • Common Name (CN) — Hier ist es wichtig, die IP-Adresse Ihres Servers oder den Hostnamen anzugeben, da Ihr Zertifikat mit der Domäne (oder IP-Adresse) der Website übereinstimmen muss;

Setzen Sie die Zugriffsrechte des root-Benutzers, um den privaten Schlüssel und das Zertifikat zu schützen:

chmod 600 /etc/apache2/ssl/*

6.2 Konfiguration des virtuellen Hosts für HTTPS-Zugriff

gefahr

Bevor Sie den Webserver mit aktivierter SSL-Terminierung konfigurieren, wird empfohlen, sich mit den Konfigurationsbesonderheiten vertraut zu machen.

Aktivieren Sie das SSL-Modul in Apache2, damit der Server das HTTPS-Protokoll unterstützt:

a2enmod ssl

Aktivieren Sie die Konfigurationsdatei des virtuellen Hosts für die Website mit SSL-Verbindungseinstellungen:

a2ensite default-ssl

Öffnen Sie die Konfigurationsdatei des virtuellen Hosts für die HTTPS-Verbindung:

nano /etc/apache2/sites-enabled/default-ssl.conf

Nehmen Sie die folgenden Änderungen vor:

  • Fügen Sie die Zeile ServerName hinzu und ändern Sie www.example.com in die IP-Adresse oder Domäne des Servers (abhängig vom im Common Name des Zertifikats angegebenen Wert);
  • Entkommentieren Sie die Zeile DocumentRoot und ändern Sie den Pfad zum Stammverzeichnis von Passwork (/var/www/public);
ServerAdmin webmaster@localhost
ServerName passwork:443
DocumentRoot /var/www/public
  • Fügen Sie die <Directory>-Direktive nach ServerName hinzu:
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
  • Aktualisieren Sie die Pfade zu den zuvor generierten Zertifikatsdateien:
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
  • Ändern Sie den Handler für .php-Dateien, indem Sie die Weiterleitung von Anfragen an den php-fpm-Socket angeben:
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
  • Überprüfen Sie nach den Änderungen, ob die Konfigurationsdatei des virtuellen Hosts dem Beispiel entspricht:
<VirtualHost *: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>

Aktivieren Sie Module und starten Sie die Dienste neu:

a2enmod rewrite proxy_fcgi setenvif
systemctl restart php8.3-fpm
systemctl restart apache2

7. Checkliste durchführen

Beim erstmaligen Verbinden mit Passwork müssen Sie die Parameter-Checkliste durchlaufen, wobei Folgendes durchgeführt wird:

  • Überprüfung der erforderlichen Parameter
  • Verbindung zur MongoDB-Datenbank
  • Auswahl des Datenverschlüsselungsmodus
  • Zufällig generierter Schlüssel zur Verschlüsselung der Daten in MongoDB
  • Überprüfung des Lizenzschlüssels

Nach dem Durchlaufen der Checkliste werden Sie aufgefordert, den ersten Benutzer in Passwork zu erstellen, wobei Sie Login, Passwort und E-Mail-Adresse für den Versand von Benachrichtigungen angeben müssen.

info

Zusätzliche Komponentenparameter, Sicherheitseinstellungen und Passwork-Systemkonfiguration sind im Abschnitt Erweiterte Einstellungen verfügbar.