Установка HESK на Ubuntu 22.04/24.04: Настройка тикет-системы | AdminWiki

Установка HESK на Ubuntu 22.04/24.04: Полное пошаговое руководство

18 декабря 2025 8 мин. чтения #devops #hesk #mysql #nginx #php #ubuntu #поддержка #тикет-система #установка

Что такое HESK и зачем он нужен?

Представь, что тебе нужно организовать работу службы поддержки для твоего проекта. Письма в почте путаются, ответы теряются, а статистику вести невозможно. HESK — это бесплатная, open-source система управления тикетами (ticketing system), которая решает все эти проблемы. Она позволяет клиентам создавать заявки через веб-форму, а твоей команде — эффективно их обрабатывать, назначать ответственных и вести базу знаний.

Важно: HESK написан на PHP и использует MySQL/MariaDB в качестве базы данных. Для его работы потребуется стандартный LAMP/LEMP стек.

Подготовка сервера Ubuntu

Давай разберем подготовительные шаги. Предположим, у тебя есть свежеустановленный сервер Ubuntu 22.04 LTS или 24.04 LTS с доступом по SSH.

1. Обновление системы и установка базовых пакетов

Первым делом обновим списки пакетов и установим необходимые утилиты.

bash
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)

bash
# Установка 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)

bash
sudo apt install -y apache2 libapache2-mod-php8.1
sudo a2enmod php8.1 rewrite headers

3. Установка и настройка MySQL/MariaDB

bash
sudo apt install -y mysql-server

# Запускаем безопасную настройку MySQL
sudo mysql_secure_installation

# Войдем в консоль MySQL для создания базы данных
sudo mysql

В консоли 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;
Внимание! Замени 'StrongPassword123!' на свой сложный пароль. Никогда не используй пароли по умолчанию в продакшене.

Установка и настройка HESK

1. Загрузка и распаковка HESK

bash
# Переходим в директорию веб-сервера
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

Создадим конфигурационный файл для нашего сайта:

bash
sudo nano /etc/nginx/sites-available/hesk

Добавь следующую конфигурацию (замени example.com на твой домен):

nginx
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";
    }
}
bash
# Активируем конфигурацию
sudo ln -s /etc/nginx/sites-available/hesk /etc/nginx/sites-enabled/

# Проверяем конфигурацию Nginx на ошибки
sudo nginx -t

# Перезапускаем Nginx
sudo systemctl restart nginx

Конфигурация для Apache

bash
sudo nano /etc/apache2/sites-available/hesk.conf
apache

    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
bash
sudo a2ensite hesk.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

3. Веб-установка HESK

Теперь открой браузер и перейди по адресу твоего сервера (http://support.example.com или IP-адрес). Запустится мастер установки HESK.

Шаги веб-установки:

  1. Язык: Выбери русский или английский интерфейс.
  2. Лицензия: Прими условия лицензионного соглашения.
  3. Проверка окружения: Убедись, что все требования отмечены зелеными галочками.
  4. Настройка базы данных:
    • Имя хоста БД: localhost
    • Имя базы данных: heskdb
    • Имя пользователя: heskuser
    • Пароль: Твой_пароль
    • Префикс таблиц: hesk_ (можно оставить по умолчанию)
  5. Настройка администратора: Создай учетную запись администратора.
  6. Настройки системы: Настрой URL, название службы поддержки, email и другие параметры.
  7. Завершение установки: После успешной установки удали папку /install!
bash
# УДАЛИТЬ папку install после завершения установки!
sudo rm -rf /var/www/hesk/install

Настройка безопасности и оптимизация

1. Настройка HTTPS с Let's Encrypt

Для защиты данных обязательно настрой SSL-сертификат.

bash
# Установка 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

bash
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'  # или 'Apache Full'
sudo ufw enable
sudo ufw status verbose

3. Настройка кэширования и производительности

Добавь в конфиг Nginx/Apache настройки кэширования и сжатия:

nginx
# В блок 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! Теперь у тебя есть полнофункциональная система управления тикетами, готовая к работе. Не забудь про регулярные обновления, бэкапы и мониторинг безопасности.

Совет от ментора: Настрой мониторинг (например, с помощью Monit или Prometheus) за нагрузкой сервера и доступностью HESK. Это поможет вовремя реагировать на проблемы.

Теперь можно приступать к добавлению сотрудников, настройке категорий заявок и интеграции HESK с твоими проектами. Удачи в организации эффективной службы поддержки!

Поделиться:
Сохранить гайд? В закладки браузера