Installation · 12 min read · Dec 21, 2025

Wie man das UVdesk Helpdesk-System auf Ubuntu 22.04 installiert

UVdesk ist ein Open-Source, SaaS-basiertes Helpdesk-System für Unternehmen, um mit ihren Kunden zu interagieren und rund um die Uhr Unterstützung anzubieten. Zu den Funktionen gehören Ticketverwaltung, Wissensdatenbankunterstützung, vorgefertigte Antworten und automatische Ticketerstellung basierend auf E-Mails. Die Fähigkeiten von UVdesk können durch externe Module erweitert werden. Sie können bestimmte Aktionen basierend auf spezifischen Auslösern automatisieren, um Ihren Arbeitsablauf zu verbessern.

In diesem Tutorial lernen Sie, wie Sie UVdesk auf einem Ubuntu 22.04-Server mit Nginx, MySQL und PHP installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein vollständig qualifizierter Domainname (FQDN), der auf den Server verweist. Für unser Tutorial verwenden wir die Domain uvdesk.example.com.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update && sudo apt upgrade
  • Installieren Sie grundlegende Dienstprogramme. Einige davon sind möglicherweise bereits installiert. $ sudo apt install wget curl nano unzip -y

Schritt 1 - Firewall konfigurieren

Bevor Sie Pakete installieren, ist der erste Schritt, die Firewall zu konfigurieren, um HTTP- und HTTPS-Verbindungen zuzulassen.

Überprüfen Sie den Status der Firewall.

$ sudo ufw status

Sie sollten etwas sehen, das wie folgt aussieht.

Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)

Erlauben Sie HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Überprüfen Sie den Status erneut zur Bestätigung.

$ sudo ufw status
Status: aktiv

Zu                         Aktion      Von
--                         ------      ----
OpenSSH                    ERLAUBEN    Überall
80/tcp                     ERLAUBEN    Überall
443                        ERLAUBEN    Überall
OpenSSH (v6)               ERLAUBEN    Überall (v6)
80/tcp (v6)                ERLAUBEN    Überall (v6)
443 (v6)                   ERLAUBEN    Überall (v6)

Schritt 2 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositorys.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.0

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 3 - PHP und Erweiterungen installieren

Ubuntu 22.04 wird standardmäßig mit PHP 8.1 ausgeliefert. UVdesk funktioniert jedoch gut mit PHP 8.0. Um PHP 8.0 zu installieren, müssen wir das PHP-Repository von Ondrej verwenden.

Fügen Sie das PHP-Repository von Ondrej hinzu.

$ sudo add-apt-repository ppa:ondrej/php

Aktualisieren Sie Ihre System-Repository-Liste.

$ sudo apt update

Installieren Sie PHP und die von UVdesk benötigten Erweiterungen.

$ sudo apt install php8.0 php8.0-curl php8.0-intl php8.0-gd php8.0-xsl php8.0-mbstring php8.0-zip php8.0-xml php8.0-bz2 php8.0-mysql php8.0-soap php8.0-mysql php8.0-fpm php8.0-gmp php8.0-bcmath php8.0-apcu php8.0-redis php8.0-imagick php8.0-imap php8.0-xdebug php8.0-tidy php8.0-ldap php8.0-opcache php8.0-mailparse

Überprüfen Sie die installierte PHP-Version.

$ php --version
PHP 8.0.23 (cli) (built: Sep 18 2022 10:25:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.23, Copyright (c) Zend Technologies
    mit Zend OPcache v8.0.23, Copyright (c), von Zend Technologies
    mit Xdebug v3.1.5, Copyright (c) 2002-2022, von Derick Rethans

Schritt 4 - MySQL installieren

Ubuntu 22.04 wird mit der neuesten Version von MySQL ausgeliefert. Sie können es mit einem einzigen Befehl installieren.

$ sudo apt install mysql-server

Überprüfen Sie die MySQL-Version.

$ mysql --version
mysql  Ver 8.0.30-0ubuntu0.22.04.1 für Linux auf x86_64 ((Ubuntu))

Dieser Schritt ist notwendig für MySQL-Versionen 8.0.28 und höher. Geben Sie die MySQL-Shell ein.

$ sudo mysql

Führen Sie den folgenden Befehl aus, um das Passwort für Ihren Root-Benutzer festzulegen. Stellen Sie sicher, dass es eine Mischung aus Zahlen, Großbuchstaben, Kleinbuchstaben und Sonderzeichen enthält.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';

Verlassen Sie die Shell.

mysql> exit

Führen Sie das MySQL-Sicherheitsinstallationsskript aus.

$ sudo mysql_secure_installation

Zuerst werden Sie nach Ihrem Root-Passwort gefragt. Geben Sie es ein. Als Nächstes werden Sie gefragt, ob Sie die Komponente zur Validierung von Passwörtern installieren möchten. Sie überprüft die Stärke der in MySQL verwendeten Passwörter. Drücken Sie Y, um es zu installieren. Als Nächstes werden Sie gefragt, welches Niveau der Passwortvalidierungspolitik Sie festlegen möchten. Wählen Sie 2, da dies die stärkste ist.

Sichern der MySQL-Serverbereitstellung.

Geben Sie das Passwort für den Benutzer root ein:

DIE VALIDIERUNGSKOMPONENTE FÜR PASSWÖRTER kann verwendet werden, um Passwörter zu testen
und die Sicherheit zu verbessern. Sie überprüft die Stärke von Passwörtern
und erlaubt den Benutzern, nur solche Passwörter festzulegen, die
ausreichend sicher sind. Möchten Sie die VALIDIERUNGSKOMPONENTE FÜR PASSWÖRTER einrichten?

Drücken Sie y|Y für Ja, eine andere Taste für Nein: Y

Es gibt drei Stufen der Passwortvalidierungspolitik:

NIEDRIG    Länge >= 8
MITTEL Länge >= 8, numerisch, gemischte Groß- und Kleinbuchstaben und Sonderzeichen
STARK Länge >= 8, numerisch, gemischte Groß- und Kleinbuchstaben, Sonderzeichen und Wörterbuchdatei

Bitte geben Sie 0 = NIEDRIG, 1 = MITTEL und 2 = STARK ein: 2
Verwenden des vorhandenen Passworts für root.

Geschätzte Stärke des Passworts: 100

Geben Sie als Nächstes N ein, um zu verweigern, Ihr Root-Passwort zu ändern. Geben Sie auch Y ein, um anonyme Benutzer zu entfernen, entfernte Root-Anmeldungen zu verbieten, die Testdatenbank zu entfernen und die Berechtigungstabellen neu zu laden.

Ändern Sie das Passwort für root? ((Drücken Sie y|Y für Ja, eine andere Taste für Nein) : N

 ... überspringen.
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,
was es jedem ermöglicht, sich bei MySQL anzumelden, ohne ein Benutzerkonto zu haben.
Dies ist nur für Tests gedacht und um die Installation etwas reibungsloser zu gestalten.
Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.

Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : Y
Erfolg.

Normalerweise sollte root nur von
'localhost' aus verbunden werden. Dies stellt sicher, dass jemand nicht das
Root-Passwort aus dem Netzwerk erraten kann.

Verweigern Sie die Remote-Anmeldung für root? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : Y
Erfolg.

Standardmäßig kommt MySQL mit einer Datenbank namens 'test', auf die
jeder zugreifen kann. Dies ist ebenfalls nur für Tests gedacht
und sollte entfernt werden, bevor Sie in eine Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : Y
 - Testdatenbank wird gelöscht...
Erfolg.

 - Berechtigungen für die Testdatenbank werden entfernt...
Erfolg.

Das Neuladen der Berechtigungstabellen stellt sicher, dass alle Änderungen
bis jetzt sofort wirksam werden.

Berechtigungstabellen jetzt neu laden? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : Y
Erfolg.

Alles erledigt!

Schritt 5 - MySQL konfigurieren

Melden Sie sich bei der MySQL-Shell an. Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden.

$ sudo mysql -u root -p

Erstellen Sie eine Beispiel-Datenbank.

mysql> CREATE DATABASE uvdeskdb;

Erstellen Sie ein SQL-Benutzerkonto.

mysql> CREATE USER 'uvdesk'@'localhost' IDENTIFIED BY 'Your_password2';

Gewähren Sie dem Benutzer alle Berechtigungen für die Datenbank.

mysql> GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdesk'@'localhost';

Aktualisieren Sie die Benutzerberechtigungen.

mysql> FLUSH PRIVILEGES;

Verlassen Sie die Shell.

mysql> exit

Schritt 6 - Composer installieren

UVdesk verwendet Composer zur Verwaltung von Abhängigkeiten. Führen Sie die folgenden Befehle aus, um Composer herunterzuladen und zu installieren.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verifiziert'; } else { echo 'Installer beschädigt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer

Überprüfen Sie, ob Composer ordnungsgemäß installiert wurde.

$ composer -V
Composer version 2.4.2 2022-09-14 16:11:15

Schritt 7 - UVDesk herunterladen und konfigurieren

Erstellen Sie das Verzeichnis /var/www.

$ sudo mkdir /var/www

Wechseln Sie in das Verzeichnis www.

$ cd /var/www

Geben Sie dem aktuell angemeldeten Systembenutzer Berechtigungen für den Ordner /var/www.

$ sudo chown $USER:$USER /var/www/

Verwenden Sie Composer, um Abhängigkeiten für UVdesk zu installieren.

$ composer clear-cache
$ composer create-project uvdesk/community-skeleton uvdesk.example.com

Installieren Sie das Dienstprogramm für Zugriffssteuerlisten (acl).

$ sudo apt install acl

Gewähren Sie Berechtigungen für bestimmte Verzeichnisse und Dateien sowohl für den aktuell angemeldeten Benutzer $USER als auch für den Nginx-Benutzer nginx.

$ sudo setfacl -dR -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/var
$ sudo setfacl -R -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/var
$ sudo setfacl -dR -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/public
$ sudo setfacl -R -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/public
$ sudo setfacl -dR -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/config
$ sudo setfacl -R -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/config
$ sudo setfacl -dR -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/migrations
$ sudo setfacl -R -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/migrations
$ sudo setfacl -m u:nginx:rwX -m u:$USER:rwX /var/www/uvdesk.example.com/.env

Schritt 8 - SSL installieren und konfigurieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd ausgeliefert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d uvdesk.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/uvdesk.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Überprüfen Sie den Zeitplan des Certbot-Erneuerungsdienstes.

$ sudo systemctl list-timers

Sie finden snap.certbot.renew.service als einen der geplanten Dienste.

NÄCHSTE                        ÜBRIG          LETZTE                        VERGANGEN      EINHEIT                      AKTIVIERT
Mon 2022-09-19 00:28:48 UTC 13min übrig    Sun 2022-09-18 23:31:55 UTC 43min ago   fstrim.timer              fstrim.service
Mon 2022-09-19 00:39:00 UTC 23min übrig    Mon 2022-09-19 00:09:00 UTC 6min ago    phpsessionclean.timer     phpsessionclean.service
Mon 2022-09-19 00:40:00 UTC 24min übrig    n/a                         n/a         snap.certbot.renew.timer  snap.certbot.renew.service
.......

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 9 - Nginx und PHP konfigurieren

PHP-FPM konfigurieren

Öffnen Sie die Datei /etc/php/8.0/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.0/fpm/pool.d/www.conf

Wir müssen den Unix-Benutzer/die Gruppe der PHP-Prozesse auf nginx setzen. Suchen Sie die Zeilen user=www-data und group=www-data in der Datei und ändern Sie sie in nginx.

...
; Unix-Benutzer/-gruppe der Prozesse
; Hinweis: Der Benutzer ist obligatorisch. Wenn die Gruppe nicht festgelegt ist, wird die Standardbenutzergruppe
;       verwendet.
; RPM: apache-Benutzer, der gewählt wurde, um Zugriff auf die gleichen Verzeichnisse wie httpd zu gewähren
user = nginx
; RPM: Halten Sie eine Gruppe, die im Protokollverzeichnis schreiben darf.
group = nginx
...

Suchen Sie die Zeilen listen.owner = www-data und listen.group = www-data in der Datei und ändern Sie sie in nginx.

; Setzen Sie Berechtigungen für den Unix-Socket, falls einer verwendet wird. In Linux müssen Lese-/Schreibberechtigungen
; festgelegt werden, um Verbindungen von einem Webserver zuzulassen. Viele
; BSD-abgeleitete Systeme erlauben Verbindungen unabhängig von Berechtigungen. Der Besitzer
; und die Gruppe können entweder nach Name oder nach ihren numerischen IDs angegeben werden.
; Standardwerte: Benutzer und Gruppe sind als laufender Benutzer festgelegt
;                 Modus ist auf 0660 festgelegt
listen.owner = nginx
listen.group = nginx

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erhöhen Sie die Ausführungszeit für PHP-FPM und PHP-CLI auf 60 Sekunden.

$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.0/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.0/cli/php.ini

Erhöhen Sie das Speicherlimit für PHP-FPM von 128 MB auf 256 MB.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.0/fpm/php.ini

Starten Sie den PHP-FPM-Dienst neu.

$ sudo systemctl restart php8.0-fpm

Ändern Sie die Gruppe des PHP-Sessionsverzeichnisses in Nginx.

$ sudo chgrp -R nginx /var/lib/php/session

Nginx konfigurieren

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/uvdesk.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/uvdesk.conf

Fügen Sie den folgenden Code ein.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  uvdesk.example.com;

    access_log  /var/log/nginx/uvdesk.access.log;
    error_log   /var/log/nginx/uvdesk.error.log;
    
    # SSL
    ssl_certificate      /etc/letsencrypt/live/uvdesk.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/uvdesk.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/uvdesk.example.com/chain.pem;
    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    root /var/www/uvdesk/public;
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP-Skripte an den FastCGI-Server weiterleiten
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock; # Hängt von der PHP-Version ab
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
        try_files $uri =404;
    }    
}

# HTTPS erzwingen
server {
    listen       80;
    listen       [::]:80;
    server_name  uvdesk.example.com;
    return 301   https://$host$request_uri;
}

Beachten Sie, dass das Wurzelverzeichnis, das in der Nginx-Konfiguration verwendet werden soll, /var/www/uvdesk/public/ und nicht /var/www/uvdesk/ ist.

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Schritt 10 - UVDesk installieren

Starten Sie die URL https://uvdesk.example.com in Ihrem Browser, und Sie erhalten den folgenden Bildschirm.

UVDesk Installationsbildschirm

Klicken Sie auf die Schaltfläche Loslegen, um den Installationsprozess zu starten. Der Installer überprüft auf der nächsten Seite die PHP-Einstellungen und Dateiberechtigungen.

UVDesk Systemanforderungen Bildschirm

Klicken Sie auf Fortfahren, um fortzufahren. Sie werden auf der nächsten Seite aufgefordert, die Datenbankdetails auszufüllen. Geben Sie die Daten ein, wie sie in Schritt 4 konfiguriert sind.

UVDesk Datenbankkonfiguration

Klicken Sie auf Fortfahren, um fortzufahren. Als Nächstes werden Sie aufgefordert, ein Super-Administrator-Konto zu erstellen. Füllen Sie Ihre Daten aus.

UVDesk Super-Administrator Bildschirm

Klicken Sie auf Fortfahren, um fortzufahren. Als Nächstes werden Sie aufgefordert, die Website zu konfigurieren, indem Sie einen Namen für die Mitglieder- und Kundenpanel-Präfixe angeben. Diese Präfixe werden in den URLs der Website verwendet.

UVDesk Website-Konfiguration

Klicken Sie auf Fortfahren, um fortzufahren. Sie erreichen die letzte Installationsseite.

UVDesk Jetzt installieren Bildschirm

Klicken Sie auf Jetzt installieren, um die Installation zu beginnen. Nach Abschluss erhalten Sie den folgenden Bildschirm.

UVDesk Installation abgeschlossen Bildschirm

Sie können über die angegebenen Links auf das Admin-Panel und die Frontend-Website zugreifen. Ihre UVDesk-Installation ist bereit zur Nutzung.

Hinweis: Wenn die Installation aufgrund eines `SQL-Fehlers

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.