Как установить систему поддержки UVdesk на Rocky Linux 8
На этой странице
- Предпосылки
- Шаг 1. Настройка брандмауэра
- Шаг 2. Установите Nginx
- Шаг 3. Установите PHP и расширения
- Шаг 4. Установка и настройка сервера MySQL
- Шаг 5. Загрузите UVdesk
- Шаг 6. Настройка разрешений SELinux
- Шаг 7. Установка и настройка SSL
- Шаг 8. Настройка Nginx и PHP
- Настройка PHP-FPM
- Настройка 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. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.