Поиск по сайту:

Как установить систему поддержки UVdesk на Rocky Linux 8


На этой странице

  1. Предпосылки
  2. Шаг 1. Настройка брандмауэра
  3. Шаг 2. Установите Nginx
  4. Шаг 3. Установите PHP и расширения
  5. Шаг 4. Установка и настройка сервера MySQL
  6. Шаг 5. Загрузите UVdesk
  7. Шаг 6. Настройка разрешений SELinux
  8. Шаг 7. Установка и настройка SSL
  9. Шаг 8. Настройка Nginx и PHP
    1. Настройка PHP-FPM
    2. Настройка Nginx

    UVdesk — это система службы поддержки на базе Saas с открытым исходным кодом, позволяющая компаниям взаимодействовать со своими клиентами и предлагать круглосуточную поддержку. Его функции включают управление билетами, поддержку базы знаний, готовые ответы и автоматическое создание билетов на основе электронных писем. Возможности Uvdesk можно расширить с помощью внешних модулей. Вы можете автоматизировать определенные действия на основе определенных триггеров, чтобы улучшить рабочий процесс.

    В этом руководстве вы узнаете, как установить Uvdesk на сервер под управлением Rocky Linux 8 с использованием Nginx, MySQL и PHP.

    Предпосылки

    • 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
      

    Шаг 1. Настройте брандмауэр

    Первым шагом является настройка брандмауэра. Rocky Linux использует Firewalld Firewall. Проверьте состояние брандмауэров.

    $ sudo firewall-cmd --state
    running
    

    Брандмауэр работает с разными зонами, и мы будем использовать публичную зону по умолчанию. Перечислите все службы и порты, активные на брандмауэре.

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

    Он должен показать следующий вывод.

    cockpit dhcpv6-client ssh
    

    Разрешить порты HTTP и HTTPS.

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

    Перепроверьте состояние брандмауэра.

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

    Вы должны увидеть аналогичный вывод.

    cockpit dhcpv6-client http https ssh
    

    Перезагрузите брандмауэр, чтобы изменения вступили в силу.

    $ sudo firewall-cmd --reload
    

    Шаг 2 — Установите Nginx

    Rocky Linux поставляется со старой версией Nginx. Вам необходимо скачать официальный репозиторий Nginx, чтобы установить последнюю версию.

    Создайте и откройте файл /etc/yum.repos.d/nginx.repo для создания официального репозитория Nginx.

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

    Вставьте в него следующий код.

    [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
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Установите Нгинкс.

    $ sudo dnf install nginx
    

    Проверьте установку.

    $ nginx -v
    nginx version: nginx/1.20.2
    

    Включите службу Nginx.

    $ sudo systemctl enable nginx
    

    Шаг 3 — Установите PHP и расширения

    Для нашего урока нам нужно установить последнюю версию PHP, используя репозиторий Remis. Первый шаг — захватить репозиторий Epel.

    $ sudo dnf install epel-release
    

    Затем установите репозиторий Remi.

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

    Проверьте доступные потоки 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
    

    Версия по умолчанию 7.2. Включить репозиторий Remis PHP 8.0.

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

    Затем установите PHP и его расширения, необходимые для 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
    

    Проверьте установку.

    $ 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
    

    Шаг 4 — Установите и настройте сервер MySQL

    Мы будем использовать базу данных MySQL для хранения данных. Репозиторий Rocky Linux Appstream поставляется с последней версией MySQL.

    Установите MySQL.

    $ sudo dnf install mysql-server
    

    Включите и запустите службу MySQL.

    $ sudo systemctl enable mysqld --now
    

    Безопасная установка MySQL.

    $ sudo mysql_secure_installation
    

    На первом этапе вас спросят, хотите ли вы настроить подключаемый модуль Validate Password, который вы можете использовать для проверки надежности вашего пароля MySQL. Выберите Y, чтобы продолжить. На следующем шаге вам будет предложено выбрать уровень проверки пароля. Выберите 2, который является самым надежным уровнем и потребует, чтобы ваш пароль состоял не менее чем из восьми символов и включал сочетание прописных и строчных букв, цифр и специальных символов.

    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
    

    На следующем шаге вам будет предложено выбрать пароль root. Выберите надежный пароль, который соответствует требованиям плагина проверки пароля. На следующем шаге вас спросят, следует ли продолжить с выбранным паролем. Нажмите y, чтобы продолжить.

    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
    

    Нажмите Y, а затем клавишу ENTER для всех следующих запросов на удаление анонимных пользователей и тестовой базы данных, отключение входа в систему root и загрузку новых установленных правил.

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

    Войдите в оболочку MySQL. Введите пароль root, чтобы продолжить.

    $ mysql -u root -p
    

    Создайте пользователя uvdesk. Убедитесь, что пароль соответствует требованиям, установленным ранее.

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

    Создайте базу данных uvdeskdb.

    mysql> CREATE DATABASE uvdeskdb;
    

    Предоставьте пользователю права доступа к базе данных uvdeskdb.

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

    Выйдите из оболочки.

    mysql> exit
    

    Шаг 5 - Загрузите UVdesk

    Загрузите последнюю стабильную версию UVdesk.

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

    Разархивируйте загруженный файл.

    $ unzip uvdesk-*.zip
    

    Переместите извлеченный каталог в папку /var/www/uvdesk.

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

    Перейдите в каталог UVdesks.

    $ cd /var/www/uvdesk
    

    Откройте файл среды (.env) для редактирования.

    $ sudo nano .env
    

    Найдите строку APP_ENV=dev и измените ее на следующую.

    APP_ENV=prod
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Измените владельца корневого каталога на пользователя Nginx.

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

    Шаг 6. Настройте разрешения SELinux

    Используйте команду SELinuxs chcon, чтобы изменить контекст безопасности файла для веб-контента, обслуживаемого из каталога /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
    

    Настройте SELinux, чтобы разрешить сетевые подключения для UVDesk.

    $ sudo setsebool -P httpd_can_network_connect on
    

    Шаг 7. Установите и настройте SSL

    Чтобы установить SSL-сертификат с помощью Lets Encrypt, нам нужно загрузить инструмент Certbot. Нам нужен репозиторий Epel для установки Certbot, но мы можем пропустить этот шаг, так как мы установили его ранее в этом руководстве.

    Установите Сертбот.

    $ sudo dnf install certbot
    

    Создайте SSL-сертификат.

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

    Приведенная выше команда загрузит сертификат в каталог /etc/letsencrypt/live/uvdesk.example.com на вашем сервере.

    Создайте групповой сертификат Диффи-Хеллмана.

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

    Создайте корневую веб-директорию для автоматического обновления Lets Encrypt.

    $ sudo mkdir -p /var/lib/letsencrypt
    

    Создайте задание Cron для обновления SSL. Он будет запускаться каждый день для проверки сертификата и его обновления при необходимости. Для этого сначала создайте файл /etc/cron.daily/certbot-renew и откройте его для редактирования.

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

    Вставьте следующий код.

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

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Измените права доступа к файлу задачи, чтобы сделать его исполняемым.

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

    Шаг 8 — Настройте Nginx и PHP

    Настроить PHP-FPM

    Откройте файл /etc/php-fpm.d/www.conf.

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

    Нам нужно установить для пользователя/группы Unix процессов PHP значение nginx. Найдите в файле строки user=www-data и group=www-data и измените их на 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
    ...
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Включите и запустите службу PHP.

    $ sudo systemctl enable php-fpm --now
    

    Измените группу каталога сеансов PHP на Nginx.

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

    Настроить Nginx

    Создайте и откройте файл /etc/nginx/conf.d/uvdesk.conf для редактирования.

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

    Вставьте в него следующий код.

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

    Обратите внимание, что корневой каталог, который будет использоваться в конфигурации Nginx, — это /var/www/uvdesk/public/, а не /var/www/uvdesk/. .

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса после завершения.

    Откройте файл /etc/nginx/nginx.conf для редактирования.

    $ sudo nano /etc/nginx/nginx.conf
    

    Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

    server_names_hash_bucket_size  64;
    

    Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.

    Проверьте синтаксис файла конфигурации 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
    

    Запустите службу Nginx.

    $ sudo systemctl start nginx
    

    Шаг 9 - Установите UVdesk

    Запустите URL-адрес https://uvdesk.example.com в своем браузере, и вы увидите следующий экран.

    Нажмите кнопку «Начать», чтобы начать процесс установки. Установщик проверит настройки PHP и права доступа к файлам на следующей странице.

    Нажмите Приступить, чтобы продолжить. Вам будет предложено заполнить данные базы данных на следующей странице. Введите данные, указанные на шаге 4.

    Нажмите Приступить, чтобы продолжить. Далее вам будет предложено создать учетную запись суперадминистратора. Заполните свои данные.

    Нажмите Приступить, чтобы продолжить. Далее вам будет предложено настроить веб-сайт, дав имя префиксам Панели Участника и Клиента. Эти префиксы используются в URL-адресах веб-сайтов.

    Нажмите Приступить, чтобы продолжить. Вы попадете на последнюю страницу установки.

    Щелкните Установить сейчас, чтобы начать установку. После завершения вы получите следующий экран.

    Вы можете получить доступ к панели администратора и веб-сайту внешнего интерфейса по указанным ссылкам. Ваша установка UVDesk готова к использованию.

    Заключение

    Вы установили систему поддержки UVdesk на сервер под управлением Rocky Linux 8 с использованием Nginx, MySQL и PHP. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.