So installierst du das UVdesk Helpdesk System auf Rocky Linux 8
UVdesk ist ein Open-Source-Saas-basiertes Helpdesk-System, mit dem Unternehmen mit ihren Kunden interagieren und rund um die Uhr Support anbieten können. Zu seinen Funktionen gehören die Verwaltung von Tickets, Wissensdatenbank-Support, vorgefertigte Antworten und die automatische Erstellung von Tickets auf der Grundlage von E-Mails. Die Funktionen von Uvdesk können durch externe Module erweitert werden. Du kannst bestimmte Aktionen auf der Grundlage bestimmter Auslöser automatisieren, um deinen Arbeitsablauf zu verbessern.
In diesem Lernprogramm lernst du, wie du Uvdesk auf einem Rocky Linux 8 basierten Server mit Nginx, MySQL und PHP installierst.
Voraussetzungen
- Ein Server, auf dem Rocky Linux 8 läuft.
- Ein Domainname für den Helpdesk, der auf den Server verweist. Für unser Tutorial werden wir die Domain
uvdesk.example.com
verwenden. - Ein nicht-root-basierter Benutzer mit sudo-Rechten.
- Stelle sicher, dass alles auf dem neuesten Stand ist.
$ sudo dnf update
- Installiere grundlegende Hilfspakete. Einige von ihnen sind vielleicht schon installiert.
$ sudo dnf install wget curl nano unzip yum-utils -y
Schritt 1 – Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Rocky Linux verwendet die Firewalld Firewall. Überprüfe den Status der Firewall.
$ sudo firewall-cmd --state running
Die Firewall arbeitet mit verschiedenen Zonen, wobei die öffentliche Zone die Standardzone ist, die wir verwenden werden. Liste alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe angezeigt werden.
cockpit dhcpv6-client ssh
Lasse HTTP- und HTTPS-Ports zu.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Überprüfe erneut den Status der Firewall.
$ sudo firewall-cmd --permanent --list-services
Du solltest eine ähnliche Ausgabe sehen.
cockpit dhcpv6-client http https ssh
Lade die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 – Nginx installieren
Rocky Linux wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, musst du das offizielle Nginx-Repository herunterladen.
Erstelle und öffne die Datei /etc/yum.repos.d/nginx.repo
zur Erstellung des offiziellen Nginx-Repositorys.
$ sudo nano /etc/yum.repos.d/nginx.repo
Füge den folgenden Code in die Datei ein.
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true [nginx-mainline] name=nginx mainline repo baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Installiere Nginx.
$ sudo dnf install nginx
Überprüfe die Installation.
$ nginx -v nginx version: nginx/1.20.2
Aktiviere den Nginx-Dienst.
$ sudo systemctl enable nginx
Schritt 3 – Installiere PHP und Erweiterungen
Für unser Tutorial müssen wir die neueste Version von PHP aus dem Repository von Remi installieren. Der erste Schritt besteht darin, das Epel-Repository zu holen.
$ sudo dnf install epel-release
Als nächstes installierst du das Remi-Repository.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Überprüfe, ob PHP Streams verfügbar sind.
$ dnf module list php -y Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC. Rocky Linux 8 - AppStream Name Stream Profiles Summary php 7.2 [d] common [d], devel, minimal PHP scripting language php 7.3 common [d], devel, minimal PHP scripting language php 7.4 common [d], devel, minimal PHP scripting language Remi's Modular repository for Enterprise Linux 8 - x86_64 Name Stream Profiles Summary php remi-7.2 common [d], devel, minimal PHP scripting language php remi-7.3 common [d], devel, minimal PHP scripting language php remi-7.4 common [d], devel, minimal PHP scripting language php remi-8.0 common [d], devel, minimal PHP scripting language php remi-8.1 common [d], devel, minimal PHP scripting language Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Die Standardversion ist 7.2. Aktiviere das PHP 8.0 Repository von Remi.
$ sudo dnf module reset php $ sudo dnf module enable php:remi-8.0
Als Nächstes installierst du PHP und die für UVDesk erforderlichen Erweiterungen.
$ sudo dnf install php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-cli php-intl php-bcmath php-gd php-tokenizer php-imap php-pear php-mailparse
Überprüfe die Installation.
$ php --version PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.16, Copyright (c) Zend Technologies
Schritt 4 – Installiere und konfiguriere den MySQL-Server
Wir werden eine MySQL-Datenbank zum Speichern der Daten verwenden. Das Appstream-Repository von Rocky Linux wird mit der neuesten Version von MySQL ausgeliefert.
Installiere MySQL.
$ sudo dnf install mysql-server
Aktiviere und starte den MySQL-Dienst.
$ sudo systemctl enable mysqld --now
Sichere die MySQL-Installation.
$ sudo mysql_secure_installation
Im ersten Schritt wirst du gefragt, ob du das Validate Password Plugin einrichten möchtest, mit dem du die Stärke deines MySQL-Passworts testen kannst. Wähle Y
, um fortzufahren. Im nächsten Schritt wirst du aufgefordert, die Stufe der Passwortüberprüfung zu wählen. Wähle 2
. Das ist die stärkste Stufe und verlangt, dass dein Passwort mindestens acht Zeichen lang ist und eine Mischung aus Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen enthält.
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Im nächsten Schritt wirst du aufgefordert, ein Root-Passwort zu wählen. Wähle ein sicheres Passwort, das die Anforderungen des Plugins zur Passwortvalidierung erfüllt. Im nächsten Schritt wirst du gefragt, ob du mit dem gewählten Passwort fortfahren möchtest. Drücke y
, um fortzufahren.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
Drücke Y
und dann ENTER
für alle folgenden Aufforderungen, um anonyme Benutzer und die Testdatenbank zu entfernen, Root-Logins zu deaktivieren und die neu festgelegten Regeln zu laden.
... Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. ... Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. ... Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. ... Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done!
Gib die MySQL-Shell ein. Gib dein Root-Passwort ein, um fortzufahren.
$ mysql -u root -p
Erstelle den Benutzer uvdesk
. Vergewissere dich, dass das Passwort den zuvor festgelegten Anforderungen entspricht.
mysql> CREATE USER 'uvdesk'@'localhost' IDENTIFIED BY 'Your_password2';
Erstelle die Datenbank uvdeskdb
.
mysql> CREATE DATABASE uvdeskdb;
Erteile dem Benutzer die Rechte für die Datenbank uvdeskdb
.
mysql> GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdesk'@'localhost';
Beende die Shell.
mysql> exit
Schritt 5 – UVdesk herunterladen
Lade die neueste stabile Version von UVdesk herunter.
$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip
Entpacke die heruntergeladene Datei.
$ unzip uvdesk-*.zip
Verschiebe das entpackte Verzeichnis in das Verzeichnis /var/www/uvdesk
.
$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdesk
Wechsle in das Verzeichnis von UVdesk.
$ cd /var/www/uvdesk
Öffne die Umgebungsdatei (.env
) zum Bearbeiten.
$ sudo nano .env
Suche die Zeile APP_ENV=dev
und ändere sie in die folgende.
APP_ENV=prod
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Ändere den Eigentümer des Stammverzeichnisses auf den Nginx-Benutzer.
$ sudo chown -R nginx:nginx /var/www/uvdesk
Schritt 6 – SELinux-Berechtigungen konfigurieren
Verwende den SELinux-Befehl chcon
, um den Dateisicherheitskontext für die Webinhalte zu ändern, die aus dem Verzeichnis/var/www/uvdesk
bereitgestellt werden.
$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R $ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -R
Konfiguriere SELinux so, dass Netzwerkverbindungen für den UVDesk erlaubt sind.
$ sudo setsebool -P httpd_can_network_connect on
Schritt 7 – SSL installieren und konfigurieren
Um ein SSL-Zertifikat mit Let’s Encrypt zu installieren, müssen wir das Tool Certbot herunterladen. Für die Installation von Certbot benötigen wir das Epel-Repository, aber wir können diesen Schritt überspringen, da wir es bereits in diesem Lernprogramm installiert haben.
Installiere Certbot.
$ sudo dnf install certbot
Erstelle ein SSL-Zertifikat.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m name@example.com -d uvdesk.example.com
Mit dem obigen Befehl wird ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/uvdesk.example.com
auf deinem Server heruntergeladen.
Erstelle ein Diffie-Hellman-Gruppenzertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erstelle ein Challenge-Web-Root-Verzeichnis für die automatische Erneuerung von Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Erstelle einen Cron Job zur Erneuerung des SSL-Zertifikats. Er wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstelle dazu zunächst die Datei /etc/cron.daily/certbot-renew
und öffne sie zur Bearbeitung.
$ sudo nano /etc/cron.daily/certbot-renew
Füge den folgenden Code ein.
#!/bin/sh certbot renew --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Ändere die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Schritt 8 – Nginx und PHP konfigurieren
PHP-FPM konfigurieren
Öffne die Datei /etc/php-fpm.d/www.conf
.
$ sudo nano /etc/php-fpm.d/www.conf
Wir müssen den Unix-Benutzer/die Unix-Gruppe der PHP-Prozesse auf nginx setzen. Suche die Zeilen user=www-data
und group=www-data
in der Datei und ändere sie in nginx
.
... ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache user chosen to provide access to the same directories as httpd user = nginx ; RPM: Keep a group allowed to write in log dir. group = nginx ...
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Aktiviere und starte den PHP-Dienst.
$ sudo systemctl enable php-fpm --now
Ändere die Gruppe des PHP-Sessions-Verzeichnisses in Nginx.
$ sudo chgrp -R nginx /var/lib/php/session
Nginx konfigurieren
Erstelle und öffne die Datei /etc/nginx/conf.d/uvdesk.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/conf.d/uvdesk.conf
Füge den folgenden Code in die Datei 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; } # Pass PHP Scripts To FastCGI Server location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/run/php-fpm/www.sock; # Depends On The PHP Version 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; } } # enforce HTTPS server { listen 80; listen [::]:80; server_name uvdesk.example.com; return 301 https://$host$request_uri; }
Beachte, dass das Stammverzeichnis, das in der Nginx-Konfiguration verwendet werden soll, /var/www/uvdesk/public/
und nicht /var/www/uvdesk/
ist.
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Öffne die Datei /etc/nginx/nginx.conf
zum Bearbeiten.
$ sudo nano /etc/nginx/nginx.conf
Füge die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf;
ein.
server_names_hash_bucket_size 64;
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Überprüfe die Syntax der Nginx-Konfigurationsdatei.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte den Nginx-Dienst.
$ sudo systemctl start nginx
Schritt 9 – UVdesk installieren
Starte die URL https://uvdesk.example.com
in deinem Browser und du erhältst den folgenden Bildschirm.
Klicke auf die Schaltfläche Los geht‘ s, um den Installationsprozess zu starten. Auf der nächsten Seite prüft das Installationsprogramm die PHP-Einstellungen und die Dateiberechtigungen.
Klicke auf Fortfahren, um fortzufahren. Auf der nächsten Seite wirst du aufgefordert, die Datenbankdaten einzugeben. Gib die Daten wie in Schritt 4 konfiguriert ein.
Klicke auf Fortfahren, um fortzufahren. Als nächstes wirst du aufgefordert, ein Superadministrator-Konto zu erstellen. Gib deine Daten ein.
Klicke auf Fortfahren, um fortzufahren. Als Nächstes wirst du aufgefordert, die Website zu konfigurieren, indem du den Präfixen für das Mitglieder- und das Kundenpanel einen Namen gibst. Diese Präfixe werden in den URLs der Website verwendet.
Klicke auf Fortfahren, um fortzufahren. Du gelangst nun zur letzten Installationsseite.
Klicke auf Jetzt installieren, um die Installation zu starten. Sobald die Installation abgeschlossen ist, siehst du den folgenden Bildschirm.
Über die angegebenen Links kannst du auf das Admin-Panel und die Frontend-Website zugreifen. Deine UVDesk-Installation ist jetzt einsatzbereit.
Fazit
Du hast das UVdesk Helpdesk System auf einem Rocky Linux 8 basierten Server mit Nginx, MySQL und PHP installiert. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.