Что такое HESK и зачем он нужен?
Представь, что тебе нужно организовать работу службы поддержки для твоего проекта. Письма в почте путаются, ответы теряются, а статистику вести невозможно. HESK — это бесплатная, open-source система управления тикетами (ticketing system), которая решает все эти проблемы. Она позволяет клиентам создавать заявки через веб-форму, а твоей команде — эффективно их обрабатывать, назначать ответственных и вести базу знаний.
Подготовка сервера Ubuntu
Давай разберем подготовительные шаги. Предположим, у тебя есть свежеустановленный сервер Ubuntu 22.04 LTS или 24.04 LTS с доступом по SSH.
1. Обновление системы и установка базовых пакетов
Первым делом обновим списки пакетов и установим необходимые утилиты.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip software-properties-common
2. Установка веб-сервера и PHP
Ты можешь выбрать между Nginx и Apache. Я рекомендую Nginx для лучшей производительности, но покажу оба варианта.
Вариант A: Установка стека LEMP (Nginx + PHP)
# Установка Nginx
sudo apt install -y nginx
# Добавление репозитория Ondřej Surý для актуальных версий PHP
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
# Установка PHP 8.1 и необходимых расширений (HESK поддерживает 7.3-8.3)
sudo apt install -y php8.1-fpm php8.1-common php8.1-mysql php8.1-gd \
php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip php8.1-bcmath
# Проверяем версию PHP
php --version
Вариант B: Установка стека LAMP (Apache + PHP)
sudo apt install -y apache2 libapache2-mod-php8.1
sudo a2enmod php8.1 rewrite headers
3. Установка и настройка MySQL/MariaDB
sudo apt install -y mysql-server
# Запускаем безопасную настройку MySQL
sudo mysql_secure_installation
# Войдем в консоль MySQL для создания базы данных
sudo mysql
В консоли MySQL выполни следующие команды:
-- Создаем базу данных для HESK
CREATE DATABASE heskdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Создаем пользователя и даем ему права на базу данных
CREATE USER 'heskuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON heskdb.* TO 'heskuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Установка и настройка HESK
1. Загрузка и распаковка HESK
# Переходим в директорию веб-сервера
cd /var/www
# Скачиваем последнюю версию HESK (проверь актуальную версию на официальном сайте)
sudo wget https://www.hesk.com/hesk-3.4.5.zip
# Распаковываем архив
sudo unzip hesk-3.4.5.zip
# Переименовываем папку для удобства (или оставляем как есть)
sudo mv hesk-3.4.5 hesk
# Устанавливаем правильные права
sudo chown -R www-data:www-data /var/www/hesk
sudo chmod -R 755 /var/www/hesk
2. Настройка веб-сервера для HESK
Конфигурация для Nginx
Создадим конфигурационный файл для нашего сайта:
sudo nano /etc/nginx/sites-available/hesk
Добавь следующую конфигурацию (замени example.com на твой домен):
server {
listen 80;
server_name support.example.com www.support.example.com;
root /var/www/hesk;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Запрещаем доступ к служебным файлам
location ~ /\.ht {
deny all;
}
location ~ /(install|config) {
deny all;
}
# Оптимизация для статических файлов
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
# Активируем конфигурацию
sudo ln -s /etc/nginx/sites-available/hesk /etc/nginx/sites-enabled/
# Проверяем конфигурацию Nginx на ошибки
sudo nginx -t
# Перезапускаем Nginx
sudo systemctl restart nginx
Конфигурация для Apache
sudo nano /etc/apache2/sites-available/hesk.conf
ServerName support.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/hesk
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/hesk_error.log
CustomLog ${APACHE_LOG_DIR}/hesk_access.log combined
sudo a2ensite hesk.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
3. Веб-установка HESK
Теперь открой браузер и перейди по адресу твоего сервера (http://support.example.com или IP-адрес). Запустится мастер установки HESK.
Шаги веб-установки:
- Язык: Выбери русский или английский интерфейс.
- Лицензия: Прими условия лицензионного соглашения.
- Проверка окружения: Убедись, что все требования отмечены зелеными галочками.
- Настройка базы данных:
- Имя хоста БД:
localhost - Имя базы данных:
heskdb - Имя пользователя:
heskuser - Пароль:
Твой_пароль - Префикс таблиц:
hesk_(можно оставить по умолчанию)
- Имя хоста БД:
- Настройка администратора: Создай учетную запись администратора.
- Настройки системы: Настрой URL, название службы поддержки, email и другие параметры.
- Завершение установки: После успешной установки удали папку /install!
# УДАЛИТЬ папку install после завершения установки!
sudo rm -rf /var/www/hesk/install
Настройка безопасности и оптимизация
1. Настройка HTTPS с Let's Encrypt
Для защиты данных обязательно настрой SSL-сертификат.
# Установка Certbot
sudo apt install -y certbot python3-certbot-nginx # для Nginx
# или
sudo apt install -y certbot python3-certbot-apache # для Apache
# Получение SSL-сертификата
sudo certbot --nginx -d support.example.com -d www.support.example.com
# Автоматическое обновление сертификата
sudo systemctl enable certbot.timer
2. Настройка файрвола UFW
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # или 'Apache Full'
sudo ufw enable
sudo ufw status verbose
3. Настройка кэширования и производительности
Добавь в конфиг Nginx/Apache настройки кэширования и сжатия:
# В блок server добавь:
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml image/svg+xml;
# Кэширование PHP-FPM
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=HESK:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
# Затем в location ~ \.php$ добавь:
fastcgi_cache HESK;
fastcgi_cache_valid 200 60m;
Решение распространенных проблем
| Проблема | Причина | Решение |
|---|---|---|
| Ошибка 500 Internal Server Error | Проблемы с правами файлов или конфигурацией PHP | sudo chown -R www-data:www-data /var/www/heskПроверь логи: sudo tail -f /var/log/nginx/error.log |
| HESK не подключается к базе данных | Неправильные креды или хост БД | Проверь создание БД и пользователя. Убедись, что MySQL слушает localhost: sudo netstat -tlnp | grep mysql |
| Страница установки не появляется | Неправильная конфигурация веб-сервера | Проверь корневую директорию в конфиге и перезапусти веб-сервер |
| Медленная работа HESK | Отсутствие кэширования или оптимизации | Включи OPCache в PHP и настрой кэширование в веб-сервере |
Часто задаваемые вопросы (FAQ)
Как обновить HESK до новой версии?
Сделай бэкап базы данных и файлов. Загрузи новую версию в отдельную директорию, скопируй старый файл hesk_settings.inc.php и папку attachments. Запусти мастер обновления через веб-интерфейс.
Можно ли использовать HESK с PostgreSQL?
Нет, HESK официально поддерживает только MySQL и MariaDB. Структура базы данных и запросы оптимизированы именно для этих СУБД.
Как настроить отправку email-уведомлений?
В админ-панели HESK перейди в «Настройки» → «Почта». Настрой SMTP (рекомендуется) или используй PHP mail(). Для SMTP укажи хост, порт (обычно 587 для TLS), логин и пароль от почтового сервиса.
Как сделать автоматическое резервное копирование?
Создай cron-задачу для mysqldump и архивации файлов:
0 2 * * * /usr/bin/mysqldump -u heskuser -p'пароль' heskdb | gzip > /backup/hesk_$(date +%Y%m%d).sql.gz
Заключение
Ты успешно установил и настроил HESK на Ubuntu! Теперь у тебя есть полнофункциональная система управления тикетами, готовая к работе. Не забудь про регулярные обновления, бэкапы и мониторинг безопасности.
Теперь можно приступать к добавлению сотрудников, настройке категорий заявок и интеграции HESK с твоими проектами. Удачи в организации эффективной службы поддержки!