UVdesk est un système d'assistance open source basé sur Saas permettant aux entreprises d'interagir avec leurs clients et d'offrir une assistance 24 heures sur 24. Ses fonctionnalités incluent la gestion des tickets, la prise en charge de la base de connaissances, les réponses prédéfinies et la génération automatique de tickets basée sur les e-mails. Les capacités d'Uvdesk peuvent être étendues à l'aide de modules externes. Vous pouvez automatiser certaines actions en fonction de déclencheurs spécifiques pour améliorer votre flux de travail.
Dans ce didacticiel, vous apprendrez à installer Uvdesk sur un serveur basé sur Rocky Linux 8 à l'aide de Nginx, MySQL et PHP.
Prérequis
-
Un serveur exécutant Rocky Linux 8.
-
Un nom de domaine pour le helpdesk pointant vers le serveur. Pour notre tutoriel, nous utiliserons le
uvdesk.example.com
domaine. -
Un utilisateur non root avec des privilèges sudo.
-
Assurez-vous que tout est mis à jour.
Mise à jour $ sudo dnf
-
Installez les packages d'utilitaires de base. Certains d'entre eux sont peut-être déjà installés.
$ sudo dnf install wget curl nano unzip yum-utils -y
Étape 1 - Configurer le pare-feu
La première étape consiste à configurer le pare-feu. Rocky Linux utilise Firewalld Firewall. Vérifiez l'état du pare-feu.
$ sudo firewall-cmd --staterunning
Le pare-feu fonctionne avec différentes zones, et la zone publique est celle par défaut que nous utiliserons. Répertorier tous les services et ports actifs sur le pare-feu.
$ sudo firewall-cmd --permanent --list-services
Il devrait afficher la sortie suivante.
cockpit dhcpv6-client ssh
Autoriser les ports HTTP et HTTPS.
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Revérifiez l'état du pare-feu.
$ sudo firewall-cmd --permanent --list-services
Vous devriez voir une sortie similaire.
cockpit dhcpv6-client http https ssh
Rechargez le pare-feu pour activer les modifications.
$ sudo firewall-cmd --reload
Étape 2 - Installer Nginx
Rocky Linux est livré avec une ancienne version de Nginx. Vous devez télécharger le dépôt officiel Nginx pour installer la dernière version.
Créez et ouvrez le /etc/yum.repos.d/nginx.repo
fichier pour créer le référentiel Nginx officiel.
$ sudo nano /etc/yum.repos.d/nginx.repo
Collez-y le code suivant.
[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing. keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/ nginx_signing.keymodule_hotfixes=true
Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Installez Nginx.
$ sudo dnf installer nginx
Vérifiez l'installation.
$ nginx -vnginx version :nginx/1.20.2
Activez le service Nginx.
$ sudo systemctl activer nginx
Étape 3 - Installer PHP et les extensions
Pour notre tutoriel, nous devons installer la dernière version de PHP en utilisant le référentiel de Remi. La première étape consiste à récupérer le référentiel Epel.
$ sudo dnf install epel-release
Ensuite, installez le référentiel Remi.
Installation $ sudo dnf https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Vérifiez les flux PHP disponibles.
$ dnf module list php -yLast metadata expiration check:0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.Rocky Linux 8 - AppStreamName Stream Profiles Summaryphp 7.2 [d] common [d], devel, langage de script PHP minimalphp 7.3 commun [d], devel, langage de script PHP minimalphp 7.4 commun [d], devel, langage de script PHP minimalRemi's Modular repository for Enterprise Linux 8 - x86_64Name Stream Profiles Summaryphp remi-7.2 common [d], devel , langage de script PHP minimalphp remi-7.3 commun [d], devel, langage de script PHP minimalphp remi-7.4 common [d], devel, script PHP minimal languagephp remi-8.0 common [d], devel, langage de script PHP minimalphp remi-8.1 common [d], devel, langage de script PHP minimalHint :[d]efault, [e]nabled, [x]disabled, [i]nstalledLa version par défaut est 7.2. Activez le référentiel PHP 8.0 de Remi.
$ sudo dnf module reset php$ sudo dnf module enable php:remi-8.0Ensuite, installez PHP et ses extensions requises par UVDesk.
$ 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-mailparseVérifiez l'installation.
$ php --versionPHP 8.0.16 (cli) (construit :15 février 2022 21:34:32) ( NTS gcc x86_64 )Copyright (c) The PHP GroupZend Engine v4.0.16, Copyright (c) Zend TechnologiesÉtape 4 - Installer et configurer le serveur MySQL
Nous utiliserons la base de données MySQL pour stocker les données. Le référentiel Appstream de Rocky Linux est livré avec la dernière version de MySQL.
Installez MySQL.
$ sudo dnf install mysql-serverActivez et démarrez le service MySQL.
$ sudo systemctl enable mysqld --nowInstallation sécurisée de MySQL.
$ sudo mysql_secure_installationPour la première étape, il vous sera demandé si vous souhaitez configurer le plugin Validate Password, que vous pouvez utiliser pour tester la force de votre mot de passe MySQL. Choisissez
Y
procéder. Il vous sera demandé de choisir le niveau de validation du mot de passe à l'étape suivante. Choisissez2
qui est le niveau le plus fort et exigera que votre mot de passe comporte au moins huit caractères et inclue un mélange de caractères majuscules, minuscules, numériques et spéciaux.Sécurisation du déploiement du serveur MySQL.Connexion à MySQL à l'aide d'un mot de passe vierge.VALIDATE PASSWORD COMPONENT peut être utilisé pour tester les mots de passe et améliorer la sécurité. Il vérifie la force du mot de passe et permet aux utilisateurs de définir uniquement les mots de passe suffisamment sécurisés. Souhaitez-vous configurer le composant VALIDATE PASSWORD ?Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non :YIl existe trois niveaux de politique de validation de mot de passe :Longueur FAIBLE>=8Longueur MOYENNE>=8, numérique, casse mixte et caractères spéciauxLongueur FORTE>=8, numérique, casse mixte, caractères spéciaux et fichier dictionnaireVeuillez entrer 0 =FAIBLE, 1 =MOYEN et 2 =FORT :2Il vous sera demandé de choisir un mot de passe root à l'étape suivante. Choisissez un mot de passe fort qui répond aux exigences du plugin de validation de mot de passe. À l'étape suivante, il vous sera demandé si vous souhaitez continuer avec le mot de passe choisi. Appuyez sur
y
pour continuer.Veuillez définir le mot de passe pour root ici.Nouveau mot de passe :Saisissez à nouveau le nouveau mot de passe :Force estimée du mot de passe :100Souhaitez-vous continuer avec le mot de passe fourni ?(Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :OAppuyez sur
Y
puisENTER
clé pour toutes les invites suivantes pour supprimer les utilisateurs anonymes et la base de données de test, désactiver les connexions root et charger les règles nouvellement définies....Supprimer les utilisateurs anonymes ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès....Interdire la connexion root à distance ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès....Supprimer la base de données de test et y accéder ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :Y - Suppression de la base de données de test...Succès. - Suppression des privilèges sur la base de données de test...Succès.Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'à présent prendront effet immédiatement...Recharger les tables de privilèges maintenant ? (Appuyez sur y|Y pour Oui, n'importe quelle autre touche pour Non) :YSuccès.Tout est fait !Entrez dans le shell MySQL. Entrez votre mot de passe root pour continuer.
$ mysql -u root -pCréer
uvdesk
utilisateur. Assurez-vous que le mot de passe répond aux exigences définies auparavant.mysql> CRÉER UN UTILISATEUR 'uvdesk'@'localhost' IDENTIFIÉ PAR 'Your_password2' ;Créer
uvdeskdb
base de données.mysql> CREER UNE BASE DE DONNEES uvdeskdb;Accordez les privilèges d'utilisateur sur
uvdeskdb
base de données.mysql> ACCORDER TOUS LES PRIVILÈGES SUR uvdeskdb.* À 'uvdesk'@'localhost' ;Quittez le Shell.
mysql> quitterÉtape 5 - Télécharger UVdesk
Téléchargez la dernière version stable d'UVdesk.
$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zipDécompressez le fichier téléchargé.
$ unzip uvdesk-*.zipDéplacez le répertoire extrait vers
/var/www/uvdesk
emplacement.$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdeskBasculez vers le répertoire d'UVdesk.
$ cd /var/www/uvdeskOuvrez le fichier d'environnement (
.env
) pour l'édition.$ sudo nano .envTrouvez la ligne
APP_ENV=dev
et remplacez-le par ce qui suit.APP_ENV=prodEnregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Modifiez la propriété du répertoire racine pour l'utilisateur Nginx.
$ sudo chown -R nginx:nginx /var/www/uvdeskÉtape 6 - Configurer les autorisations SELinux
Utiliser le
chcon
de SELinux commande pour modifier le contexte de sécurité des fichiers pour le contenu Web diffusé à partir de/var/www/uvdesk
répertoire.$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R$ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -RConfigurez SELinux pour autoriser les connexions réseau pour l'UVDesk.
$ sudo setsebool -P httpd_can_network_connect onÉtape 7 - Installer et configurer SSL
Pour installer un certificat SSL avec Let's Encrypt, nous devons télécharger l'outil Certbot. Nous avons besoin du référentiel Epel pour installer Certbot, mais nous pouvons ignorer cette étape puisque nous l'avons installé plus tôt dans le didacticiel.
Installez Certbot.
$ sudo dnf install certbotGénérez un certificat SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d uvdesk.example.comLa commande ci-dessus téléchargera un certificat sur
/etc/letsencrypt/live/uvdesk.example.com
répertoire sur votre serveur.Générer un groupe Diffie-Hellman certificat.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Créez un répertoire racine Web de défi pour le renouvellement automatique de Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencryptCréez une tâche Cron pour renouveler le SSL. Il s'exécutera tous les jours pour vérifier le certificat et le renouveler si nécessaire. Pour cela, créez d'abord le fichier
/etc/cron.daily/certbot-renew
et ouvrez-le pour le modifier.$ sudo nano /etc/cron.daily/certbot-renewCollez le code suivant.
#!/bin/shcertbot renouveler --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Modifiez les autorisations sur le fichier de tâche pour le rendre exécutable.
$ sudo chmod +x /etc/cron.daily/certbot-renewÉtape 8 - Configurer Nginx et PHP
Configurer PHP-FPM
Ouvrez le fichier
/etc/php-fpm.d/www.conf
.$ sudo nano /etc/php-fpm.d/www.confNous devons définir l'utilisateur/groupe Unix de processus PHP sur nginx . Trouvez le
user=www-data
etgroup=www-data
lignes dans le fichier et changez-les ennginx
.... ; Utilisateur/groupe de processus Unix ; Remarque :L'utilisateur est obligatoire. Si le groupe n'est pas défini, le groupe de l'utilisateur par défaut ; sera utilisé.; RPM :utilisateur apache choisi pour donner accès aux mêmes répertoires que httpduser =nginx; RPM :Garder un groupe autorisé à écrire dans le journal dir.group =nginx...Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Activez et démarrez le service PHP.
$ sudo systemctl enable php-fpm --nowChangez le groupe du répertoire des sessions PHP en Nginx.
$ sudo chgrp -R nginx /var/lib/php/sessionConfigurer Nginx
Créez et ouvrez le fichier
/etc/nginx/conf.d/uvdesk.conf
pour l'édition.$ sudo nano /etc/nginx/conf.d/uvdesk.confCollez-y le code suivant.
serveur { écouter 443 ssl http2 ; écouter [::]:443 ssl http2 ; nom_serveur uvdesk.exemple.com ; access_log /var/log/nginx/uvdesk.access.log; error_log /var/log/nginx/uvdesk.error.log; # SSL certificat_ssl /etc/letsencrypt/live/uvdesk.example.com/fullchain.pem ; clé_certificat_ssl /etc/letsencrypt/live/uvdesk.example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/uvdesk.example.com/chain.pem ; SSL_session_timeout 5 m ; ssl_session_cache partagé :MozSSL :10 m ; ssl_session_tickets désactivé ; ssl_protocols TLSv1.2 TLSv1.3 ; ssl_prefer_server_ciphers activé ; chiffrements_ssl -RSA-CHACHA20-POLY1305 :DHE-RSA-AES128-GCM-SHA256 :DHE-RSA-AES256-GCM-SHA384 ; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling activé ; ssl_stapling_verify activé ; ssl_dhparam /etc/ssl/certs/dhparam.pem ; résolveur 8.8.8.8 ; racine /var/www/uvdesk/public; index index.php; location / { try_files $uri $uri/ /index.php?$args; } # Passer les scripts PHP à l'emplacement du serveur FastCGI ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/run/php-fpm/www.sock; # Dépend de la version PHP fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_param PATH_INFO $fastcgi_path_info ; inclure fastcgi_params ; try_files $uri =404; } }# appliquer le serveur HTTPS { écouter 80 ; écouter [::]:80 ; nom_serveur uvdesk.exemple.com ; renvoie 301 https://$host$request_uri;}Notez que le répertoire racine à utiliser dans la configuration Nginx est
/var/www/uvdesk/public/
et non/var/www/uvdesk/
.Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité une fois terminé.
Ouvrez le fichier
/etc/nginx/nginx.conf
pour l'édition.$ sudo nano /etc/nginx/nginx.confAjoutez la ligne suivante avant la ligne
include /etc/nginx/conf.d/*.conf;
.server_names_hash_bucket_size 64 ;Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.
Vérifiez la syntaxe du fichier de configuration Nginx.
$ sudo nginx -tnginx :la syntaxe du fichier de configuration /etc/nginx/nginx.conf est oknginx :le test du fichier de configuration /etc/nginx/nginx.conf est réussiDémarrez le service Nginx.
$ sudo systemctl start nginxÉtape 9 - Installer UVdesk
Lancez l'URL
https://uvdesk.example.com
dans votre navigateur, et vous obtiendrez l'écran suivant.
Cliquez sur Commençons bouton pour démarrer le processus d'installation. Le programme d'installation vérifiera les paramètres PHP et les autorisations de fichiers sur la page suivante.
Cliquez sur Continuer continuer. Il vous sera demandé de remplir les détails de la base de données sur la page suivante. Entrez les données telles que configurées à l'étape 4.
Cliquez sur Continuer continuer. Ensuite, il vous sera demandé de créer un compte super administrateur. Remplissez vos coordonnées.
Cliquez sur Continuer continuer. Ensuite, il vous sera demandé de configurer le site Web en donnant un nom aux préfixes du Panneau Membre et Client. Ces préfixes sont utilisés dans les URL des sites Web.
Cliquez sur Continuer continuer. Vous arriverez à la page d'installation finale.
Cliquez sur Installer maintenant pour commencer l'installation. Une fois terminé, vous obtiendrez l'écran suivant.
Vous pouvez accéder au panneau d'administration et au site Web frontal via les liens indiqués. Votre installation UVDesk est prête à être utilisée.
Conclusion
Vous avez installé le système UVdesk Helpdesk sur un serveur basé sur Rocky Linux 8 en utilisant Nginx, MySQL et PHP. Si vous avez des questions, postez-les dans les commentaires ci-dessous.