MAATRIX / Блог / osTicket на Ubuntu 24.04: пошаговая установка

osTicket на Ubuntu 24.04: пошаговая установка

MAATRIX

Клиенты пишут в почту, в мессенджеры, звонят — и через месяц половина обращений теряется, потому что нет единого места, где видно, кто отвечал и что уже решено. osTicket закрывает эту проблему без подписок и лимитов на агентов: это open-source тикет-система на PHP, которую вы разворачиваете на своём сервере и полностью контролируете. Ниже — рабочий путь установки на чистой Ubuntu 24.04: от пакетов до первого тикета.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Что понадобится и как готовим сервер

osTicket — классическое LAMP/LEMP-приложение: PHP + MySQL-совместимая база + веб-сервер. Для комфортной работы поддержки на 3-10 агентов хватает 2 vCPU и 2-4 ГБ RAM; если ожидается активный email-трафик с вложениями и десятки агентов одновременно, лучше взять 4 ГБ и больше — вложения и IMAP-синхронизация съедают память.

Понадобится:

  • сервер с Ubuntu 24.04 LTS и root-доступом (SSH);
  • домен, направленный A-записью на IP сервера (для SSL и писем через email piping это важно);
  • открытые порты 80/443 (веб) и, если планируете принимать почту напрямую на этот же сервер, 25/587.

Обновляем систему и ставим базовые утилиты:

apt update && apt upgrade -y
apt install -y unzip curl wget software-properties-common

Дальше — версия PHP. Ubuntu 24.04 в стандартных репозиториях даёт PHP 8.3. osTicket исторически не всегда успевает за самыми свежими версиями PHP: перед установкой стоит свериться с текущими требованиями на странице загрузки osTicket. Если увидите предупреждения совместимости с 8.3, подключите PPA Ondřej Surý и поставьте PHP 8.1 — он с osTicket проверен стабильно:

add-apt-repository ppa:ondrej/php -y
apt update

Устанавливаем nginx, PHP-FPM и MariaDB

Ставим стек. Ниже вариант на PHP 8.1 через PPA — если у вас всё завелось на системном 8.3, просто замените версию в именах пакетов.

apt install -y nginx mariadb-server \
  php8.1-fpm php8.1-mysqli php8.1-gd php8.1-mbstring \
  php8.1-imap php8.1-curl php8.1-intl php8.1-xml \
  php8.1-cli php8.1-apcu php8.1-zip

Расширения не случайны: mysqli — работа с базой, gd — генерация капчи и превью изображений, mbstring/intl — многоязычные тикеты, imap — приём почты по IMAP/POP3, apcu — кэш, без которого панель тормозит на нагрузке.

Настраиваем MariaDB и создаём базу для osTicket:

mysql_secure_installation
mysql -u root -p
CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'osticket'@'localhost' IDENTIFIED BY 'СложныйПарольЗдесь';
GRANT ALL PRIVILEGES ON osticket.* TO 'osticket'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Если вы ещё не разбирались с самой базой отдельно, подробности по установке и тюнингу MariaDB/MySQL — в статье MySQL на Ubuntu 24.04: пошаговая установка.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Скачиваем и размещаем osTicket

Берём актуальный релиз с официального GitHub-репозитория osTicket:

cd /tmp
wget https://github.com/osTicket/osTicket/releases/latest/download/osTicket.zip
mkdir -p /var/www/osticket
unzip osTicket.zip -d /var/www/osticket

Важный нюанс структуры: реальный веб-корень — это подпапка upload/, а не весь распакованный архив. Именно её нужно указывать document root в nginx.

cd /var/www/osticket/upload
cp include/ost-sampleconfig.php include/ost-config.php
chmod 0666 include/ost-config.php
chown -R www-data:www-data /var/www/osticket/upload

Права 0666 на ost-config.php нужны только на время работы мастера установки — он сам запишет туда параметры подключения к базе. Сразу после установки права придётся ужесточить, это будет в последнем шаге.

Мастер установки: база данных и админ-аккаунт

Настраиваем nginx-конфиг для домена. Создаём /etc/nginx/sites-available/osticket.conf:

server {
    listen 80;
    server_name helpdesk.example.com;
    root /var/www/osticket/upload;
    index index.php;

    client_max_body_size 25M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~* ^/(include|attachments)/.*\.(php|php3|php5)$ {
        deny all;
    }
}
ln -s /etc/nginx/sites-available/osticket.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
systemctl enable --now php8.1-fpm mariadb

Если вы уже настраивали nginx как реверс-прокси для других сервисов на этом сервере, логика конфига будет знакомой — общий разбор в статье Nginx как реверс-прокси на Ubuntu 24.04: пошаговая установка.

Дальше открываем в браузере http://helpdesk.example.com/setup/ — запустится мастер:

  1. Проверка требований (PHP-версия, расширения, права на ost-config.php) — все пункты должны быть зелёными.
  2. Заполнение формы: название компании, домашняя ссылка, email по умолчанию для уведомлений.
  3. Данные подключения к MySQL: хост localhost, база osticket, пользователь и пароль, которые вы создали.
  4. Создание учётной записи администратора — логин, пароль, email. Это будет вход в панель /scp/ (staff control panel).

После успешного завершения мастер покажет ссылки на клиентский портал (/) и панель агента (/scp/).

Настройка cron и приёма почты

osTicket регулярно опрашивает почтовые ящики и обрабатывает очередь через cron.php. Без cron не будут приходить письма и не будут срабатывать напоминания по SLA. Добавляем задание от имени www-data:

crontab -u www-data -e
* * * * * php /var/www/osticket/upload/api/cron.php > /dev/null 2>&1

Дальше в панели агента: Admin Panel → Emails → Add New Email. Есть два принципиально разных способа получать письма в тикеты:

  • Fetch (IMAP/POP3) — osTicket сам подключается к почтовому ящику по расписанию (через тот же cron) и забирает новые письма. Проще всего настроить, задержка — минуты, зависит от периода опроса.
  • Piping — почтовый сервер сразу передаёт входящее письмо скрипту api/pipe.php. Мгновенно, но требует настройки алиаса/pipe на стороне MTA (Postfix/Exim).

Если почтовый сервер уже свой, разворачивать который вы планируете отдельно, посмотрите Почтовый сервер Postfix на Ubuntu 24.04: пошаговая установка — там разбор Postfix, который дальше можно связать с osTicket через piping-алиас вида:

support: "|/usr/bin/php /var/www/osticket/upload/api/pipe.php"

Для большинства небольших команд достаточно fetch по IMAP — не нужно поднимать свой полноценный почтовый сервер, хватит обычного почтового ящика с включённым IMAP-доступом.

SSL через Let's Encrypt и базовая защита

Тикет-система обрабатывает переписку с клиентами, часто с персональными данными — HTTPS обязателен.

apt install -y certbot python3-certbot-nginx
certbot --nginx -d helpdesk.example.com

Certbot сам допишет блок для 443-го порта и настроит редирект с 80-го. Если хотите разобраться в альтернативах и деталях автопродления — сравнение подходов в статье Certbot или acme.sh: что выбрать для сервера.

После того как установка прошла, обязательно закройте доступ к мастеру и зафиксируйте права на конфиг — иначе любой сможет переустановить систему поверх вашей:

rm -rf /var/www/osticket/upload/setup
chmod 0644 /var/www/osticket/upload/include/ost-config.php
chown www-data:www-data /var/www/osticket/upload/include/ost-config.php

Дополнительно стоит:

  • ограничить фаервол только нужными портами — базовая настройка UFW описана в отдельной статье по Ubuntu 24.04;
  • включить регулярный бэкап базы osticket и каталога attachments/ (если вложения хранятся на диске, а не в БД) — их нужно бэкапить синхронно;
  • обновлять osTicket по мере выхода релизов безопасности — проект не самый быстрый в релизах, но патчи безопасности выходят регулярно.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

osTicket бесплатен полностью или есть платная версия?

Сам продукт open-source (GPL) и бесплатен для самостоятельного хостинга. Платной версии для self-hosted нет — компания-разработчик продаёт облачный SaaS (osTicket cloud), но это отдельный продукт, вы его не обязаны использовать.

Можно ли хранить вложения в базе данных вместо диска?

Да, это настраивается на этапе установки или позже в Admin Panel → Settings → System. Хранение в БД проще для бэкапов (один дамп — всё в нём), но раздувает базу; хранение на диске компактнее для MySQL, но требует отдельного бэкапа каталога attachments/.

Почему письма не попадают в тикеты, хотя cron настроен?

Чаще всего причина в правах доступа к почтовому ящику (неверный пароль/токен для IMAP), в блокировке файрволом исходящих подключений на 993/995 порт, либо в том, что почтовый провайдер требует OAuth вместо простого пароля — старые версии osTicket с OAuth у некоторых провайдеров (например, Gmail) работают через дополнительные настройки, это стоит проверить отдельно.

Нужен ли Apache, если у меня уже настроен nginx под другие сайты?

Нет, osTicket прекрасно работает на nginx + PHP-FPM, как показано выше. Apache исторически чаще фигурирует в официальной документации просто потому, что так исторически сложилось у большинства shared-хостингов.

Как перенести osTicket на новый сервер?

Дамп базы MySQL (mysqldump), копия каталога upload/ целиком (включая ost-config.php и attachments/, если они на диске), восстановление в том же порядке на новом сервере с теми же версиями PHP-расширений.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →