UVdesk ist ein SaaS-basiertes Open-Source-Helpdesk-System, mit dem Unternehmen mit ihren Kunden interagieren und Support rund um die Uhr anbieten können. Zu den Funktionen gehören Ticketverwaltung, Wissensdatenbankunterstützung, vorgefertigte Antworten und automatische Ticketerstellung auf der Grundlage von E-Mails. Die Fähigkeiten von Uvdesk können mit externen Modulen erweitert werden. Sie können bestimmte Aktionen basierend auf bestimmten Auslösern automatisieren, um Ihren Arbeitsablauf zu verbessern.
In diesem Tutorial erfahren Sie, wie Sie Uvdesk auf einem Rocky Linux 8-basierten Server mit Nginx, MySQL und PHP installieren.
Voraussetzungen
-
Ein Server mit Rocky Linux 8.
-
Ein Domänenname für den Helpdesk, der auf den Server verweist. Für unser Tutorial verwenden wir
uvdesk.example.com
Domäne. -
Ein nicht-root-basierter Benutzer mit sudo-Berechtigungen.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo dnf update
-
Installieren Sie grundlegende Dienstprogrammpakete. Einige davon sind möglicherweise bereits 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 Firewalld Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --state running
Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listet alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe zeigen.
cockpit dhcpv6-client ssh
HTTP- und HTTPS-Ports zulassen.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-services
Sie sollten eine ähnliche Ausgabe sehen.
cockpit dhcpv6-client http https ssh
Laden Sie 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. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.
Erstellen und öffnen Sie /etc/yum.repos.d/nginx.repo
Datei zum Erstellen des offiziellen Nginx-Repositorys.
$ sudo nano /etc/yum.repos.d/nginx.repo
Fügen Sie den folgenden Code 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
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Nginx installieren.
$ sudo dnf install nginx
Überprüfen Sie die Installation.
$ nginx -v nginx version: nginx/1.20.2
Aktivieren Sie den Nginx-Dienst.
$ sudo systemctl enable nginx
Schritt 3 – PHP und Erweiterungen installieren
Für unser Tutorial müssen wir die neueste Version von PHP mithilfe des Repositorys von Remi installieren. Der erste Schritt besteht darin, sich das Epel-Repository zu besorgen.
$ sudo dnf install epel-release
Installieren Sie als Nächstes das Remi-Repository.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Suchen Sie nach verfügbaren PHP-Streams.
$ 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. Aktivieren Sie das PHP 8.0-Repository von Remi.
$ sudo dnf module reset php $ sudo dnf module enable php:remi-8.0
Als nächstes installieren Sie PHP und seine Erweiterungen, die von UVDesk benötigt werden.
$ 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üfen Sie 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 – MySQL Server installieren und konfigurieren
Wir werden die MySQL-Datenbank verwenden, um die Daten zu speichern. Das Appstream-Repository von Rocky Linux wird mit der neuesten Version von MySQL ausgeliefert.
Installieren Sie MySQL.
$ sudo dnf install mysql-server
Aktivieren und starten Sie den MySQL-Dienst.
$ sudo systemctl enable mysqld --now
Sichere MySQL-Installation.
$ sudo mysql_secure_installation
Im ersten Schritt werden Sie gefragt, ob Sie das Validate Password Plugin einrichten möchten, mit dem Sie die Stärke Ihres MySQL-Passworts testen können. Wählen Sie Y
fortfahren. Im nächsten Schritt werden Sie aufgefordert, die Passwortvalidierungsstufe auszuwählen. Wählen Sie 2
Dies ist die stärkste Stufe und erfordert, dass Ihr Passwort mindestens acht Zeichen lang ist und eine Mischung aus Großbuchstaben, Kleinbuchstaben, Ziffern 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 werden Sie aufgefordert, ein Root-Passwort zu wählen. Wählen Sie ein sicheres Passwort, das die Anforderungen des Passwortvalidierungs-Plugins erfüllt. Im nächsten Schritt werden Sie gefragt, ob Sie mit dem gewählten Passwort fortfahren möchten. Drücken Sie 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ücken Sie Y
und dann ENTER
Schlüssel für alle folgenden Eingabeaufforderungen, um anonyme Benutzer und die Testdatenbank zu entfernen, Root-Anmeldungen 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!
Geben Sie die MySQL-Shell ein. Geben Sie Ihr Root-Passwort ein, um fortzufahren.
$ mysql -u root -p
Erstellen Sie uvdesk
Benutzer. Stellen Sie sicher, dass das Passwort die zuvor festgelegten Anforderungen erfüllt.
mysql> CREATE USER 'uvdesk'@'localhost' IDENTIFIED BY 'Your_password2';
Erstellen Sie uvdeskdb
Datenbank.
mysql> CREATE DATABASE uvdeskdb;
Gewähren Sie dem Benutzer Berechtigungen für uvdeskdb
Datenbank.
mysql> GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdesk'@'localhost';ALLE PRIVILEGIEN AUF uvdeskdb.*
Verlassen Sie die Shell.
mysql> exit
Schritt 5 – Laden Sie UVdesk herunter
Laden Sie die neueste stabile Version von UVdesk herunter.
$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip
Entpacken Sie die heruntergeladene Datei.
$ unzip uvdesk-*.zip
Verschieben Sie das extrahierte Verzeichnis nach /var/www/uvdesk
Ort.
$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdesk
Wechseln Sie in das UVdesk-Verzeichnis.
$ cd /var/www/uvdesk
Öffnen Sie die Umgebungsdatei (.env
) zum Bearbeiten.
$ sudo nano .env
Suchen Sie die Zeile APP_ENV=dev
und ändern Sie es wie folgt.
APP_ENV=prod
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Ändern Sie den Besitz des Stammverzeichnisses auf den Nginx-Benutzer.
$ sudo chown -R nginx:nginx /var/www/uvdesk
Schritt 6 – SELinux-Berechtigungen konfigurieren
Verwenden Sie chcon
von SELinux Befehl zum Ändern des Dateisicherheitskontexts für die Webinhalte, die von /var/www/uvdesk
bereitgestellt werden Verzeichnis.
$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R $ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -R
Konfigurieren Sie SELinux so, dass Netzwerkverbindungen für UVDesk zugelassen werden.
$ 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 Certbot-Tool herunterladen. Wir brauchen das Epel-Repository, um Certbot zu installieren, aber wir können diesen Schritt überspringen, da wir es früher im Tutorial installiert haben.
Certbot installieren.
$ sudo dnf install certbot
Generieren Sie ein SSL-Zertifikat.
$ sudo certbot certonly --standalone --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 /etc/letsencrypt/live/uvdesk.example.com
herunter Verzeichnis auf Ihrem Server.
Erstellen Sie eine Diffie-Hellman-Gruppe Zertifikat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Erstellen Sie ein Challenge-Web-Root-Verzeichnis für die automatische Verlängerung von Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew
und zum Bearbeiten öffnen.
$ sudo nano /etc/cron.daily/certbot-renew
Fügen Sie den folgenden Code ein.
#!/bin/sh certbot renew --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Ändern Sie 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
Öffnen Sie die Datei /etc/php-fpm.d/www.conf
.
$ sudo nano /etc/php-fpm.d/www.conf
Wir müssen den Unix-Benutzer/die Gruppe von PHP-Prozessen auf nginx setzen . Suchen Sie user=www-data
und group=www-data
Zeilen in der Datei und ändern Sie 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 ...
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Aktivieren und starten Sie den PHP-Dienst.
$ sudo systemctl enable php-fpm --now
Ändern Sie die Gruppe des PHP-Sitzungsverzeichnisses in Nginx.
$ sudo chgrp -R nginx /var/lib/php/session
Nginx konfigurieren
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/uvdesk.conf
zum Bearbeiten.
$ 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; } # 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; }zurück
Beachten Sie, dass das Stammverzeichnis, das in der Nginx-Konfiguration verwendet werden soll, /var/www/uvdesk/public/
ist und nicht /var/www/uvdesk/
.
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Öffnen Sie die Datei /etc/nginx/nginx.conf
zum Bearbeiten.
$ 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 geben Sie Y ein wenn Sie dazu aufgefordert werden.
Überprüfen Sie 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
Starten Sie den Nginx-Dienst.
$ sudo systemctl start nginx
Schritt 9 – UVdesk installieren
Starten Sie die URL https://uvdesk.example.com
in Ihrem Browser, und Sie erhalten den folgenden Bildschirm.
Klicken Sie auf Los geht's Schaltfläche, um den Installationsvorgang zu starten. Das Installationsprogramm überprüft auf der nächsten Seite die PHP-Einstellungen und Dateiberechtigungen.
Klicken Sie auf Fortfahren weitermachen. Sie werden aufgefordert, die Datenbankdetails auf der nächsten Seite einzugeben. Geben Sie die Daten wie in Schritt 4 konfiguriert ein.
Klicken Sie auf Fortfahren weitermachen. Als Nächstes werden Sie aufgefordert, ein Superadministratorkonto zu erstellen. Geben Sie Ihre Daten ein.
Klicken Sie auf Fortfahren weitermachen. Als Nächstes werden Sie aufgefordert, die Website zu konfigurieren, indem Sie den Präfixen für das Mitglieder- und das Kundenpanel einen Namen geben. Diese Präfixe werden in den Website-URLs verwendet.
Klicken Sie auf Fortfahren weitermachen. Sie gelangen auf die letzte Installationsseite.
Klicken Sie auf Jetzt installieren um mit der Installation zu beginnen. Sobald Sie fertig sind, erhalten Sie den folgenden Bildschirm.
Sie können über die angegebenen Links auf das Admin-Panel und die Frontend-Website zugreifen. Ihre UVDesk-Installation ist einsatzbereit.
Schlussfolgerung
Sie haben das UVdesk Helpdesk-System auf einem Rocky Linux 8-basierten Server mit Nginx, MySQL und PHP installiert. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.