GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo instalar el sistema de asistencia técnica UVdesk en Rocky Linux 8

UVdesk es un sistema de mesa de ayuda de código abierto basado en Saas para que las empresas interactúen con sus clientes y ofrezcan soporte las 24 horas. Sus características incluyen administración de tickets, soporte de base de conocimientos, respuestas enlatadas y generación automática de tickets basada en correos electrónicos. Las capacidades de Uvdesk se pueden ampliar utilizando módulos externos. Puede automatizar ciertas acciones en función de disparadores específicos para mejorar su flujo de trabajo.

En este tutorial, aprenderá cómo instalar Uvdesk en un servidor basado en Rocky Linux 8 usando Nginx, MySQL y PHP.

Requisitos

  • Un servidor que ejecuta Rocky Linux 8.

  • Un nombre de dominio para el servicio de asistencia que apunta al servidor. Para nuestro tutorial, usaremos uvdesk.example.com dominio.

  • Un usuario no root con privilegios sudo.

  • Asegúrate de que todo esté actualizado.

    $ sudo dnf update
    
  • Instalar paquetes de utilidades básicas. Es posible que algunos de ellos ya estén instalados.

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

Paso 1:configurar el cortafuegos

El primer paso es configurar el cortafuegos. Rocky Linux usa Firewalld Firewall. Compruebe el estado del cortafuegos.

$ sudo firewall-cmd --state
running

El firewall funciona con diferentes zonas, y la zona pública es la predeterminada que usaremos. Enumere todos los servicios y puertos activos en el firewall.

$ sudo firewall-cmd --permanent --list-services

Debería mostrar el siguiente resultado.

cockpit dhcpv6-client ssh

Permitir puertos HTTP y HTTPS.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Vuelva a comprobar el estado del cortafuegos.

$ sudo firewall-cmd --permanent --list-services

Debería ver un resultado similar.

cockpit dhcpv6-client http https ssh

Vuelva a cargar el cortafuegos para habilitar los cambios.

$ sudo firewall-cmd --reload

Paso 2:instalar Nginx

Rocky Linux viene con una versión anterior de Nginx. Debe descargar el repositorio oficial de Nginx para instalar la última versión.

Cree y abra el /etc/yum.repos.d/nginx.repo archivo para crear el repositorio oficial de Nginx.

$ sudo nano /etc/yum.repos.d/nginx.repo

Pegue el siguiente código en él.

[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

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Instala Nginx.

$ sudo dnf install nginx

Verifique la instalación.

$ nginx -v
nginx version: nginx/1.20.2

Habilite el servicio Nginx.

$ sudo systemctl enable nginx

Paso 3:instalar PHP y extensiones

Para nuestro tutorial, necesitamos instalar la última versión de PHP usando el repositorio de Remi. El primer paso es obtener el repositorio de Epel.

$ sudo dnf install epel-release

A continuación, instale el repositorio de Remi.

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

Verifique las transmisiones de PHP disponibles.

$ 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 versión predeterminada es 7.2. Habilite el repositorio PHP 8.0 de Remi.

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

A continuación, instale PHP y sus extensiones requeridas por 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

Verifique la instalación.

$ 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

Paso 4:instalar y configurar el servidor MySQL

Usaremos la base de datos MySQL para almacenar los datos. El repositorio Appstream de Rocky Linux viene con la última versión de MySQL.

Instale MySQL.

$ sudo dnf install mysql-server

Habilite e inicie el servicio MySQL.

$ sudo systemctl enable mysqld --now

Instalación segura de MySQL.

$ sudo mysql_secure_installation

Para el primer paso, se le preguntará si desea configurar el complemento Validar contraseña, que puede usar para probar la seguridad de su contraseña de MySQL. Elija Y para proceder. Se le pedirá que elija el nivel de validación de la contraseña en el siguiente paso. Elige 2 que es el nivel más fuerte y requerirá que su contraseña tenga al menos ocho caracteres e incluya una combinación de mayúsculas, minúsculas, números y caracteres especiales.

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

Se le pedirá que elija una contraseña de root en el siguiente paso. Elija una contraseña segura que cumpla con los requisitos del complemento de validación de contraseña. En el siguiente paso, se le preguntará si desea continuar con la contraseña elegida. Pulsa y para continuar.

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

Presiona Y y luego ENTER clave para todas las siguientes indicaciones para eliminar usuarios anónimos y la base de datos de prueba, deshabilitar los inicios de sesión raíz y cargar las reglas recién establecidas.

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

Ingrese el shell de MySQL. Ingrese su contraseña raíz para continuar.

$ mysql -u root -p

Crear uvdesk usuario. Asegúrese de que la contraseña cumpla con los requisitos establecidos anteriormente.

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

Crear uvdeskdb base de datos.

mysql> CREATE DATABASE uvdeskdb;

Otorgue privilegios de usuario en uvdeskdb base de datos.

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

Salga del caparazón.

mysql> exit

Paso 5:Descargar UVdesk

Descargue la última versión estable de UVdesk.

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

Descomprima el archivo descargado.

$ unzip uvdesk-*.zip

Mueva el directorio extraído a /var/www/uvdesk ubicación.

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

Cambie al directorio de UVdesk.

$ cd /var/www/uvdesk

Abra el archivo de entorno (.env ) para editar.

$ sudo nano .env

Encuentra la línea APP_ENV=dev y cámbielo a lo siguiente.

APP_ENV=prod

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Cambie la propiedad del directorio raíz al usuario de Nginx.

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

Paso 6:configurar los permisos de SELinux

Utilice chcon de SELinux comando para cambiar el contexto de seguridad del archivo para el contenido web que se sirve desde /var/www/uvdesk directorio.

$ sudo chcon -t httpd_sys_content_t /var/www/uvdesk -R
$ sudo chcon -t httpd_sys_rw_content_t /var/www/uvdesk -R

Configure SELinux para permitir conexiones de red para UVDesk.

$ sudo setsebool -P httpd_can_network_connect on

Paso 7:instalar y configurar SSL

Para instalar un certificado SSL usando Let's Encrypt, necesitamos descargar la herramienta Certbot. Necesitamos el repositorio de Epel para instalar Certbot, pero podemos omitir este paso ya que lo instalamos anteriormente en el tutorial.

Instale Certbot.

$ sudo dnf install certbot

Genere un certificado SSL.

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

El comando anterior descargará un certificado en /etc/letsencrypt/live/uvdesk.example.com directorio en su servidor.

Generar un grupo Diffie-Hellman certificado.

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

Cree un directorio raíz web de desafío para la renovación automática de Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Cree un trabajo cron para renovar el SSL. Se ejecutará todos los días para verificar el certificado y renovarlo si es necesario. Para eso, primero crea el archivo /etc/cron.daily/certbot-renew y ábralo para editarlo.

$ sudo nano /etc/cron.daily/certbot-renew

Pegue el siguiente código.

#!/bin/sh
certbot renew --cert-name uvdesk.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Cambie los permisos en el archivo de tareas para que sea ejecutable.

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

Paso 8:Configurar Nginx y PHP

Configurar PHP-FPM

Abra el archivo /etc/php-fpm.d/www.conf .

$ sudo nano /etc/php-fpm.d/www.conf

Necesitamos configurar el usuario/grupo de procesos PHP de Unix en nginx . Encuentra el user=www-data y group=www-data líneas en el archivo y cámbielas a 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
...

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Habilite e inicie el servicio PHP.

$ sudo systemctl enable php-fpm --now

Cambia el grupo del directorio de sesiones de PHP a Nginx.

$ sudo chgrp -R nginx /var/lib/php/session

Configurar Nginx

Cree y abra el archivo /etc/nginx/conf.d/uvdesk.conf para editar.

$ sudo nano /etc/nginx/conf.d/uvdesk.conf

Pegue el siguiente código en él.

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;
}

Observe que el directorio raíz que se usará en la configuración de Nginx es /var/www/uvdesk/public/ y no /var/www/uvdesk/ .

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite una vez terminado.

Abra el archivo /etc/nginx/nginx.conf para editar.

$ sudo nano /etc/nginx/nginx.conf

Agregue la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf; .

server_names_hash_bucket_size  64;

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Verifique la sintaxis del archivo de configuración de 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

Inicie el servicio Nginx.

$ sudo systemctl start nginx

Paso 9:instalar UVdesk

Inicie la URL https://uvdesk.example.com en su navegador, y obtendrá la siguiente pantalla.

Haga clic en Empecemos botón para iniciar el proceso de instalación. El instalador verificará la configuración de PHP y los permisos de archivo en la página siguiente.

Haz clic en Continuar continuar. Se le pedirá que complete los detalles de la base de datos en la página siguiente. Introduzca los datos tal como se configuraron en el paso 4.

Haz clic en Continuar continuar. A continuación, se le pedirá que cree una cuenta de superadministrador. Complete sus datos.

Haz clic en Continuar continuar. A continuación, se le pedirá que configure el sitio web dando un nombre a los prefijos del panel de miembros y clientes. Estos prefijos se utilizan en las URL de los sitios web.

Haz clic en Continuar continuar. Llegará a la página de instalación final.

Haga clic en Instalar ahora para comenzar la instalación. Una vez terminado, obtendrá la siguiente pantalla.

Puede acceder al panel de administración y al sitio web de la interfaz a través de los enlaces proporcionados. Su instalación de UVDesk está lista para usar.

Conclusión

Ha instalado el sistema UVdesk Helpdesk en un servidor basado en Rocky Linux 8 utilizando Nginx, MySQL y PHP. Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Rocky Linux
  1. Cómo instalar Nextcloud en Rocky Linux

  2. Cómo instalar y usar PostgreSQL 13 en Rocky Linux

  3. Cómo instalar el último PHP 8 en Rocky Linux

  4. Cómo instalar phpMyAdmin en Rocky Linux

  5. Cómo instalar PHP 8 en Alma Linux y Rocky Linux

Cómo instalar Docker CE en Rocky Linux 8

Cómo instalar Snap en Rocky Linux 8

Cómo instalar PHP 7.4 en Rocky Linux 8

Cómo instalar Memcached en Rocky Linux 8

Cómo instalar PHP 8 en Rocky Linux 8

Cómo instalar Laravel en Rocky Linux 8