Ricerca nel sito web

Come installare il sistema di helpdesk UVdesk su Rocky Linux 8


Su questa pagina

  1. Prerequisiti
  2. Passaggio 1: configurazione del firewall
  3. Passaggio 2 - Installa Nginx
  4. Passaggio 3 - Installa PHP ed estensioni
  5. Passaggio 4 - Installa e configura il server MySQL
  6. Passaggio 5 - Scarica UVdesk
  7. Passaggio 6 - Configura i permessi di SELinux
  8. Passaggio 7 - Installa e configura SSL
  9. Passaggio 8 - Configura Nginx e PHP
    1. Configura PHP-FPM
    2. Configura Nginx

    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 in base alle e-mail. Le funzionalità 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

    • A server running Rocky Linux 8.

    • A domain name for the helpdesk pointing to the server. For our tutorial, we will use the uvdesk.example.com domain.

    • A non-root based user with sudo privileges.

    • Make sure everything is updated.

      $ sudo dnf update
      
    • Install basic utility packages. Some of them may already be installed.

      $ sudo dnf install wget curl nano unzip yum-utils -y
      

    Passaggio 1: configurare il firewall

    Il primo passo è configurare il firewall. Rocky Linux utilizza Firewalld Firewall. Controlla lo stato dei firewall.

    $ sudo firewall-cmd --state
    running
    

    Il firewall funziona con zone diverse e la zona pubblica è quella predefinita che utilizzeremo. 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
    

    Passaggio 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 file /etc/yum.repos.d/nginx.repo per creare il 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
    

    Verificare l'installazione.

    $ nginx -v
    nginx version: nginx/1.20.2
    

    Abilita il servizio Nginx.

    $ sudo systemctl enable nginx
    

    Passo 3 - Installa PHP ed estensioni

    Per il nostro tutorial, dobbiamo installare l'ultima versione di PHP utilizzando il repository Remis. Il primo passo è prendere il repository Epel.

    $ sudo dnf install epel-release
    

    Successivamente, installa il repository Remi.

    $ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    

    Controlla i flussi PHP disponibili.

    $ 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 Remis PHP 8.0.

    $ sudo dnf module reset php
    $ sudo dnf module enable php:remi-8.0
    

    Successivamente, 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
    

    Verificare 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
    

    Passo 4 - Installa e configura il server MySQL

    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 configurare il plug-in Validate Password, che puoi utilizzare per testare la sicurezza della tua password MySQL. Scegli Y per 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 sia lunga almeno otto caratteri e includa un mix 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 il tasto INVIO per tutti i seguenti prompt per rimuovere gli utenti anonimi e il database di test, disabilitare i login root e caricare le nuove regole 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!
    

    Inserisci la shell MySQL. Inserisci la tua password di root per continuare.

    $ mysql -u root -p
    

    Crea un utente uvdesk. Assicurati che la password soddisfi i requisiti impostati in precedenza.

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

    Crea il database uvdeskdb.

    mysql> CREATE DATABASE uvdeskdb;
    

    Concedi all'utente i privilegi sul database uvdeskdb.

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

    Esci dalla shell.

    mysql> exit
    

    Passo 5 - Scarica UVdesk

    Scarica l'ultima versione stabile di UVdesk.

    $ wget https://cdn.uvdesk.com/uvdesk/downloads/opensource/uvdesk-community-current-stable.zip
    

    Decomprimere il file scaricato.

    $ unzip uvdesk-*.zip
    

    Sposta la directory estratta nella posizione /var/www/uvdesk.

    $ sudo mv uvdesk-community-v1.0.18 /var/www/uvdesk
    

    Passa alla directory UVdesks.

    $ cd /var/www/uvdesk
    

    Apri il file dell'ambiente (.env) per la modifica.

    $ sudo nano .env
    

    Trova la riga APP_ENV=dev e modificala nella seguente.

    APP_ENV=prod
    

    Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

    Cambia la proprietà della directory radice all'utente Nginx.

    $ sudo chown -R nginx:nginx /var/www/uvdesk
    

    Passaggio 6: configurare le autorizzazioni SELinux

    Usa il comando chcon di SELinux per modificare il contesto di sicurezza del file per il contenuto web servito dalla directory /var/www/uvdesk.

    $ 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
    

    Passo 7 - Installa e configura SSL

    Per installare un certificato SSL utilizzando Lets Encrypt, dobbiamo scaricare lo strumento Certbot. Abbiamo bisogno del repository Epel per installare Certbot, ma possiamo saltare questo passaggio poiché lo abbiamo installato in precedenza nel tutorial.

    Installa Cerbot.

    $ sudo dnf install certbot
    

    Genera un certificato SSL.

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

    Il comando precedente scaricherà un certificato nella directory /etc/letsencrypt/live/uvdesk.example.com sul tuo server.

    Genera un certificato di gruppo Diffie-Hellman.

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

    Crea una directory radice Web di verifica per il rinnovo automatico di Lets 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, per prima cosa, crea il file /etc/cron.daily/certbot-renew e aprilo per modificarlo.

    $ 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.

    Modificare le autorizzazioni sul file dell'attività per renderlo eseguibile.

    $ sudo chmod +x /etc/cron.daily/certbot-renew
    

    Passaggio 8: configurare 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 Unix di processi PHP su nginx. Trova le righe user=www-data e group=www-data nel file e modificale 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 root 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
    

    Aggiungere 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.

    Verificare la sintassi del file di configurazione di 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
    

    Passo 9 - Installa UVdesk

    Avvia l'URL https://uvdesk.example.com nel tuo browser e otterrai la seguente schermata.

    Fare clic sul pulsante Iniziamo per avviare il processo di installazione. Il programma di installazione verificherà le impostazioni PHP e i permessi dei file nella pagina successiva.

    Fare clic su Procedi per continuare. Ti verrà chiesto di compilare i dettagli del database nella pagina successiva. Immettere i dati come configurato nel passaggio 4.

    Fare clic su Procedi per continuare. Successivamente, ti verrà chiesto di creare un account super amministratore. Inserisci i tuoi dati.

    Fare clic su Procedi per continuare. Successivamente, ti verrà chiesto di configurare il sito Web assegnando un nome ai prefissi del membro e del pannello del cliente. Questi prefissi vengono utilizzati negli URL del sito web.

    Fare clic su Procedi per continuare. Raggiungerai la pagina di installazione finale.

    Fare 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 di frontend tramite i collegamenti forniti. L'installazione di UVDesk è pronta per l'uso.

    Conclusione

    Hai installato il sistema UVdesk Helpdesk su un server basato su Rocky Linux 8 utilizzando Nginx, MySQL e PHP. Se hai domande, pubblicale nei commenti qui sotto.