UVdesk è un sistema di helpdesk open source basato su Saas che consente alle aziende di interagire con i propri clienti e offrire supporto 24 ore su 24. Le sue funzionalità includono la gestione dei ticket, il supporto della knowledge base, le risposte predefinite e la generazione automatica dei ticket basata sulle e-mail. Le capacità di Uvdesk possono essere estese utilizzando moduli esterni. Puoi automatizzare determinate azioni in base a trigger specifici per migliorare il tuo flusso di lavoro.
In questo tutorial imparerai come installare Uvdesk su un server basato su Rocky Linux 8 usando Nginx, MySQL e PHP.
Prerequisiti
-
Un server che esegue Rocky Linux 8.
-
Un nome di dominio per l'helpdesk che punta al server. Per il nostro tutorial utilizzeremo
uvdesk.example.com
dominio. -
Un utente non root con privilegi sudo.
-
Assicurati che tutto sia aggiornato.
$ sudo dnf update
-
Installa i pacchetti di utilità di base. Alcuni di essi potrebbero essere già installati.
$ sudo dnf install wget curl nano unzip yum-utils -y
Passaggio 1:configurazione del firewall
Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato del firewall.
$ sudo firewall-cmd --state running
Il firewall funziona con diverse zone e la zona pubblica è quella predefinita che useremo. Elenca tutti i servizi e le porte attive sul firewall.
$ sudo firewall-cmd --permanent --list-services
Dovrebbe mostrare il seguente output.
cockpit dhcpv6-client ssh
Consenti porte HTTP e HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Ricontrolla lo stato del firewall.
$ sudo firewall-cmd --permanent --list-services
Dovresti vedere un output simile.
cockpit dhcpv6-client http https ssh
Ricarica il firewall per abilitare le modifiche.
$ sudo firewall-cmd --reload
Fase 2:installa Nginx
Rocky Linux viene fornito con una versione precedente di Nginx. Devi scaricare il repository Nginx ufficiale per installare l'ultima versione.
Crea e apri il /etc/yum.repos.d/nginx.repo
file per la creazione del repository Nginx ufficiale.
$ sudo nano /etc/yum.repos.d/nginx.repo
Incolla il seguente codice al suo interno.
[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
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Installa Nginx.
$ sudo dnf install nginx
Verifica l'installazione.
$ nginx -v nginx version: nginx/1.20.2
Abilita il servizio Nginx.
$ sudo systemctl enable nginx
Fase 3 - Installa PHP ed estensioni
Per il nostro tutorial, dobbiamo installare l'ultima versione di PHP utilizzando il repository di Remi. Il primo passo è prendere il repository Epel.
$ sudo dnf install epel-release
Quindi, installa il repository Remi.
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Verifica la disponibilità di stream PHP.
$ 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
La versione predefinita è 7.2. Abilita il repository PHP 8.0 di Remi.
$ sudo dnf module reset php $ sudo dnf module enable php:remi-8.0
Quindi, installa PHP e le sue estensioni richieste da 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-mailparse
Verifica l'installazione.
$ 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
Passaggio 4:installazione e configurazione di MySQL Server
Useremo il database MySQL per memorizzare i dati. Il repository Appstream di Rocky Linux viene fornito con l'ultima versione di MySQL.
Installa MySQL.
$ sudo dnf install mysql-server
Abilita e avvia il servizio MySQL.
$ sudo systemctl enable mysqld --now
Installazione sicura di MySQL.
$ sudo mysql_secure_installation
Per il primo passaggio, ti verrà chiesto se desideri impostare il plug-in Validate Password, che puoi utilizzare per testare la forza della tua password MySQL. Scegli Y
procedere. Ti verrà chiesto di scegliere il livello di convalida della password nel passaggio successivo. Scegli 2
che è il livello più forte e richiederà che la tua password contenga almeno otto caratteri e includa una combinazione di caratteri maiuscoli, minuscoli, numerici e speciali.
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
Ti verrà chiesto di scegliere una password di root nel passaggio successivo. Scegli una password complessa che soddisfi i requisiti del plug-in di convalida della password. Nel passaggio successivo ti verrà chiesto se continuare con la password scelta. Premi y
per continuare.
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
Premi Y
e poi ENTER
chiave per tutte le seguenti richieste per rimuovere gli utenti anonimi e il database di test, disabilitare gli accessi di root e caricare le regole appena impostate.
... 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!
Entra nella shell MySQL. Inserisci la tua password di root per continuare.
$ mysql -u root -p
Crea uvdesk
utente. Assicurati che la password soddisfi i requisiti impostati in precedenza.
mysql> CREATE USER 'uvdesk'@'localhost' IDENTIFIED BY 'Your_password2';
Crea uvdeskdb
banca dati.
mysql> CREATE DATABASE uvdeskdb;
Concedi all'utente i privilegi su uvdeskdb
banca dati.
mysql> GRANT ALL PRIVILEGES ON uvdeskdb.* TO 'uvdesk'@'localhost';
Esci dalla shell.
mysql> exit
Fase 5 - Scarica UVdesk
Scarica l'ultima versione stabile di UVdesk.
$ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip
Decomprimi il file scaricato.
$ unzip uvdesk-*.zip
Sposta la directory estratta in /var/www/uvdesk
posizione.
$ sudo mv uvdesk-community-v1.0.18 /var/www/uvdesk
Passa alla directory di UVdesk.
$ cd /var/www/uvdesk
Apri il file dell'ambiente (.env
) per la modifica.
$ sudo nano .env
Trova la riga APP_ENV=dev
e cambialo come segue.
APP_ENV=prod
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Cambia la proprietà della directory principale con l'utente Nginx.
$ sudo chown -R nginx:nginx /var/www/uvdesk
Passaggio 6 - Configura le autorizzazioni SELinux
Usa chcon
di SELinux comando per modificare il contesto di sicurezza del file per il contenuto web servito da /var/www/uvdesk
directory.
$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R $ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -R
Configura SELinux per consentire le connessioni di rete per UVDesk.
$ sudo setsebool -P httpd_can_network_connect on
Passaggio 7 - Installa e configura SSL
Per installare un certificato SSL utilizzando Let's Encrypt, è necessario scaricare lo strumento Certbot. Abbiamo bisogno del repository Epel per installare Certbot, ma possiamo saltare questo passaggio poiché l'abbiamo installato in precedenza nel tutorial.
Installa Certbot.
$ sudo dnf install certbot
Genera un certificato SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d uvdesk.example.com
Il comando precedente scaricherà un certificato in /etc/letsencrypt/live/uvdesk.example.com
directory sul tuo server.
Genera un gruppo Diffie-Hellman certificato.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Crea una directory radice web di sfida per il rinnovo automatico di Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Crea un Cron Job per rinnovare l'SSL. Verrà eseguito ogni giorno per controllare il certificato e rinnovarlo se necessario. Per questo, prima crea il file /etc/cron.daily/certbot-renew
e aprilo per la modifica.
$ sudo nano /etc/cron.daily/certbot-renew
Incolla il seguente codice.
#!/bin/sh certbot renew --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Modifica le autorizzazioni sul file dell'attività per renderlo eseguibile.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Passaggio 8 - Configura Nginx e PHP
Configura PHP-FPM
Apri il file /etc/php-fpm.d/www.conf
.
$ sudo nano /etc/php-fpm.d/www.conf
Dobbiamo impostare l'utente/gruppo di processi PHP Unix su nginx . Trova il user=www-data
e group=www-data
righe nel file e cambiale 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 ...
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Abilita e avvia il servizio PHP.
$ sudo systemctl enable php-fpm --now
Cambia il gruppo della directory delle sessioni PHP in Nginx.
$ sudo chgrp -R nginx /var/lib/php/session
Configura Nginx
Crea e apri il file /etc/nginx/conf.d/uvdesk.conf
per la modifica.
$ sudo nano /etc/nginx/conf.d/uvdesk.conf
Incolla il seguente codice al suo interno.
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; }
Si noti che la directory principale da utilizzare nella configurazione di Nginx è /var/www/uvdesk/public/
e non /var/www/uvdesk/
.
Salva il file premendo Ctrl + X e inserendo Y quando richiesto una volta terminato.
Apri il file /etc/nginx/nginx.conf
per la modifica.
$ sudo nano /etc/nginx/nginx.conf
Aggiungi la riga seguente prima della riga include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Verifica la sintassi del file di configurazione Nginx.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Avvia il servizio Nginx.
$ sudo systemctl start nginx
Fase 9 - Installa UVdesk
Avvia l'URL https://uvdesk.example.com
nel tuo browser e otterrai la seguente schermata.
Fai clic su Iniziamo pulsante per avviare il processo di installazione. Il programma di installazione verificherà le impostazioni PHP e le autorizzazioni dei file nella pagina successiva.
Fai clic su Procedi continuare. Ti verrà chiesto di compilare i dettagli del database nella pagina successiva. Immettere i dati come configurato nel passaggio 4.
Fai clic su Procedi continuare. Successivamente, ti verrà chiesto di creare un account di super amministratore. Inserisci i tuoi dati.
Fai clic su Procedi continuare. Successivamente, ti verrà chiesto di configurare il sito Web assegnando un nome ai prefissi del pannello del membro e del cliente. Questi prefissi vengono utilizzati negli URL dei siti Web.
Fai clic su Procedi continuare. Raggiungerai la pagina di installazione finale.
Fai clic su Installa ora per iniziare l'installazione. Una volta terminato, otterrai la seguente schermata.
È possibile accedere al pannello di amministrazione e al sito Web frontend tramite i collegamenti forniti. La tua installazione di UVDesk è pronta per l'uso.
Conclusione
Hai installato il sistema UVdesk Helpdesk su un server basato su Rocky Linux 8 usando Nginx, MySQL e PHP. Se hai domande, pubblicale nei commenti qui sotto.