Гид по технологиям

Установка osTicket на Ubuntu 16.04 с Nginx, PHP-FPM 7 и MySQL 5.7

8 min read Инструкции Обновлено 08 Oct 2025
Установка osTicket на Ubuntu 16.04 с Nginx и PHP-FPM
Установка osTicket на Ubuntu 16.04 с Nginx и PHP-FPM

TL;DR

osTicket — лёгкая система тикетов на PHP. В этой инструкции пошагово показано, как установить osTicket на Ubuntu 16.04 с Nginx, PHP-FPM 7.0 и MySQL 5.7: установка сервисов, настройка PHP-FPM, создание базы данных, виртуального хоста, загрузка osTicket, финальная установка через веб-интерфейс и базовое тестирование. Включены чеклисты, рекомендации по безопасности и отладке.

Важно: следуйте шагам в порядке, выполняйте резервное копирование перед изменением продакшен-систем.

Введение

osTicket — это открытая (open source) система поддержки заявок (support ticket system) на PHP. Проект лёгкий и простой в установке. osTicket поддерживает аутентификацию через LDAP/Active Directory и позволяет управлять, организовывать и архивировать обращения пользователей.

В этой статье описан процесс установки на Ubuntu 16.04, с использованием Nginx как веб-сервера, PHP-FPM 7.0 и MySQL 5.7 в качестве СУБД.

Краткие требования: Ubuntu 16.04, права root (или sudo).

Содержание

  • Требования
  • Установка Nginx и MySQL
  • Установка и настройка PHP-FPM 7.0
  • Создание базы данных для osTicket
  • Конфигурация виртуального хоста Nginx
  • Загрузка и подготовка файлов osTicket
  • Установка через веб-интерфейс
  • Тестирование
  • Чеклисты и роли
  • Безопасность и hardening
  • Отладка и распространённые ошибки
  • Критерии приёмки
  • Глоссарий и ссылки

Требования

  • Ubuntu 16.04 (сервер) — минимально поддерживаемая версия в этой инструкции.
  • Права root или пользователь с sudo.
  • Домен или DNS-запись, указывающая на сервер (в примерах используется osticket.hakase-labs.com).
  • Резервная копия системы, если вы делаете это в продакшене.

Шаг 1 — Установка Nginx и MySQL

В этом шаге устанавливаем Nginx и MySQL (из репозиториев Ubuntu) и включаем автозапуск сервисов.

Войдите на сервер по SSH:

ssh [email protected]

Обновите списки пакетов:

sudo apt-get update

Установите Nginx и MySQL:

sudo apt-get install -y nginx mysql-server

Во время установки вам предложат задать пароль root для MySQL — используйте надёжный пароль.

Установка пароля root MySQL на Ubuntu

Запустите и перезапустите службы:

systemctl restart nginx
systemctl restart mysql

Включите автозапуск:

systemctl enable nginx
systemctl enable mysql

Проверьте, что службы слушают порты:

netstat -plntu

Вы должны увидеть порт 80 для Nginx и порт 3306 для MySQL.

Nginx и MySQL запущены и слушают порты

Шаг 2 — Установка и настройка PHP-FPM 7.0

osTicket требует ряд PHP-расширений: gd, imap, xml, mbstring и другие. Установим PHP 7.0 и необходимые расширения, а затем настроим PHP-FPM под Nginx.

Установите пакеты:

sudo apt-get install -y php7.0-cli php7.0-mysql php7.0-cgi php7.0-fpm php7.0-gd php7.0-imap php7.0-xml php7.0-mbstring php7.0-intl php-apcu

Отредактируйте конфигурацию FPM:

cd /etc/php/7.0/
vim fpm/php.ini

Найдите и раскомментируйте параметр cgi.fix_pathinfo, задав ему значение 0:

cgi.fix_pathinfo=0

Сохраните файл и перезапустите службу PHP-FPM:

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

Настройка Nginx для работы с PHP-FPM: отредактируйте виртуальный хост (по умолчанию — /etc/nginx/sites-available/default):

cd /etc/nginx/sites-available/
vim default

Убедитесь, что блок обработки PHP указывает на сокет php7.0-fpm:

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

Перезапустите Nginx:

systemctl restart nginx

Проверим PHP, создав phpinfo файл:

cd /var/www/html/
echo '' > info.php

Откройте http:///info.php и убедитесь, что PHP работает и загружены нужные расширения.

Информация о PHP

Шаг 3 — Создание базы данных для osTicket

Создайте базу и пользователя в MySQL. В примере: база osticket_db, пользователь osticket, пароль osticketpw@.

Войдите в MySQL:

mysql -u root -p
TYPE YOUR PASSWORD

Создайте базу и пользователя:

create database osticket_db;
create user osticket@localhost identified by 'osticketpw@';

Дайте привилегии и сбросьте привилегии:

grant all privileges on osticket_db.* to osticket@localhost identified by 'osticketpw@';
flush privileges;

После этого база данных готова.

Создание базы данных и пользователя для osTicket

Примечание: в продакшене используйте сильные пароли и разбивайте привилегии по необходимости.

Шаг 4 — Создание виртуального хоста osTicket в Nginx

Создайте отдельный файл виртуального хоста, например /etc/nginx/sites-available/osticket.

cd /etc/nginx/sites-available/
vim osticket

Вставьте конфигурацию (в примере используется osticket.hakase-labs.com и корень /var/www/osticket/upload):

server {
  listen 80;
  server_name osticket.hakase-labs.com;

  root   /var/www/osticket/upload;

  access_log  /var/log/nginx/access.log;
  error_log  /var/log/nginx/error.log;

  index index.php;
  client_max_body_size 2000M;
  client_body_buffer_size 100M;
  client_header_buffer_size 10M;
  large_client_header_buffers 2 10M;

  client_body_timeout 12;
  client_header_timeout 12;
  keepalive_timeout 15;
  send_timeout 10;

  gzip             on;
  gzip_comp_level  2;
  gzip_min_length  1000;
  gzip_proxied     expired no-cache no-store private auth;
  gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

  set $path_info "";

  location ~ /include {
    deny all;
    return 403;
  }

  if ($request_uri ~ "^/api(/[^"]+)") {
    set $path_info $1;
  }

  location ~ ^/api/(?:tickets|tasks).*$ {
    try_files $uri $uri/ /api/http.php?$query_string;
  }

  if ($request_uri ~ "^/scp/.*\.php(/[^"]+)") {
    set $path_info $1;
  }

  location ~ ^/scp/ajax.php/.*$ {
    try_files $uri $uri/ /scp/ajax.php?$query_string;
  }

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

  location ~ \.php$ {
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param  PATH_INFO    $path_info;
  }
}

Замените server_name на свой домен и проверьте путь root, если вы используете другую директорию.

Активируйте виртуальный хост и проверьте конфигурацию:

ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

Шаг 5 — Загрузка и подготовка файлов osTicket

Создайте директорию для osTicket и загрузите архив:

mkdir -p /var/www/osticket/
cd /var/www/osticket/
wget http://osticket.com/sites/default/files/download/osTicket-v1.10.zip
unzip osTicket-v1.10.zip

Файлы веб-приложения будут в каталоге upload. Скопируйте пример конфигурации:

cd upload/
cp include/ost-sampleconfig.php include/ost-config.php

Назначьте владельца www-data:

cd /var/www/osticket/
chown -R www-data:www-data upload/

Шаг 6 — Установка osTicket через веб-интерфейс

Откройте браузер и перейдите на домен osTicket, например:

http://osticket.hakase-labs.com

На странице установки проверьте, что все необходимые пакеты отмечены зелёным цветом. Если какие-то зависимости отсутствуют — установите соответствующие PHP-модули, затем обновите страницу.

Проверка требований osTicket

Нажмите Continue (Продолжить). В разделе «System Settings» задайте название HelpDesk и адрес по умолчанию. В разделе «Admin User» заполните данные администратора (почта администратора должна отличаться от адреса HelpDesk).

Конфигурация osTicket

В настройках базы данных укажите параметры, созданные на шаге 3 (osticket_db, osticket, osticketpw@).

Детали базы данных

Нажмите Install Now и дождитесь окончания установки.

Установка osTicket завершена

После завершения удалите или переименуйте каталог setup и выставьте права на файл конфигурации:

cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php

Шаг 7 — Тестирование

Домашняя страница osTicket:

http://osticket.hakase-labs.com/

Домашняя страница osTicket

Панель администратора:

http://osticket.hakase-labs.com/scp/

Страница входа администратора osTicket

Панель агента:

http://osticket.hakase-labs.com/scp/index.php

Панель агентов osTicket

Страница настроек администратора:

http://osticket.hakase-labs.com/scp/settings.php

Настройки osTicket

Контрольный чеклист перед запуском (Operations checklist)

  • Обновлены пакеты ОС и установлены обновления безопасности.
  • Nginx и MySQL запущены и настроены на автозапуск.
  • PHP-FPM запущен, нужные расширения установлены (gd, imap, xml, mbstring, intl, apcu).
  • База данных создана, пользователь с ограниченными правами.
  • Конфигурация Nginx направляет PHP на unix-сокет php7.0-fpm.sock.
  • Права на каталоги выставлены на www-data и конфигурационный файл защищён.
  • Каталог setup переименован/удалён после установки.
  • Выполнено тестирование основных страниц (главная, вход администратора, панель агента).

Роли и обязанности (Role-based checklist)

Admin (Администратор приложения):

  • Настройка HelpDesk, почтовых каналов, SLA и шаблонов ответов.
  • Управление пользователями и правами агентов.

DevOps / Системный администратор:

  • Установка и поддержка Nginx, PHP-FPM, MySQL.
  • Резервное копирование файлов и базы данных.
  • Мониторинг доступности и журналов.

Security (Информационная безопасность):

  • Включение HTTPS, проверка сертификатов.
  • Ограничение доступа к /include и другим чувствительным директориям.

Мини-методология внедрения (быстрый план внедрения)

  1. Подготовка инфраструктуры: сервер, DNS, резервное копирование.
  2. Установка зависимостей: Nginx, MySQL, PHP-FPM и расширения.
  3. Создание БД и пользователя с ограниченными правами.
  4. Настройка виртуального хоста и прав доступа.
  5. Установка osTicket через веб-интерфейс в тестовом окружении.
  6. Тестирование функциональности и метрик.
  7. Перенос в продакшен и включение HTTPS.

Безопасность и hardening

  • Всегда используйте HTTPS (Let’s Encrypt или коммерческие сертификаты). Перенаправьте весь трафик на 443 и отключите небезопасные протоколы.
  • Избегайте использования root-пользователя для операций приложения; используйте www-data.
  • Ограничьте доступ к административной панели по IP (если возможно) или включите двухфакторную аутентификацию, если плагин доступен.
  • Закройте директорию /include и другие внутренние директории, как в конфигурации Nginx (deny all).
  • Регулярно обновляйте PHP и MySQL; Ubuntu 16.04 может больше не получать обновления безопасности — планируйте миграцию на более свежую LTS.
  • Настройте бэкапы БД и файлов (cron + mysqldump + rsync).

Миграция и совместимость

  • osTicket v1.10 ориентирован на PHP 5.6+ и PHP 7.x; в инструкции использован PHP 7.0. При миграции на более новые версии PHP проверьте совместимость плагинов.
  • При переносе с другой системы: экспортируйте БД, перенесите папку upload и проверьте права и зависимости.
  • При обновлении Ubuntu (с 16.04 на 18.04/20.04) проверьте версии PHP и MySQL, выполните тестовую миграцию в staging.

Отладка и распространённые ошибки (Troubleshooting)

  1. Ошибка «500 Internal Server Error» — проверьте журналы Nginx (/var/log/nginx/error.log) и права на файлы.
  2. Отсутствие PHP-расширений — на странице установки будет видно красные отметки; установите требуемые пакеты и перезапустите php-fpm.
  3. Проблемы с подключением к БД — проверьте host, имя пользователя, пароль и привилегии; попробуйте подключиться из командной строки mysql с теми же данными.
  4. Белая страница или ошибки парсинга — убедитесь, что файлы не повреждены при распаковке и что include/ost-config.php корректен и читабелен веб-сервером.
  5. Почта не отправляется — настройте SMTP или используйте внешний SMTP-сервер; проверьте логи MTA и настройки почты в osTicket.

Критерии приёмки

  • Главная страница osTicket доступна по HTTP(S).
  • Администратор может войти в /scp/ с заданными учетными данными.
  • Агент видит список тикетов и может создавать/редактировать тикеты.
  • Отправка и получение почты (интеграция входящей и исходящей почты) функционирует корректно.
  • Резервные копии базы данных и файлов настроены и протестированы.

Тестовые сценарии (Test cases)

  1. Создание тикета через публичную форму: проверьте, что тикет появляется у агентов.
  2. Создание тикета через email: отправьте письмо на адрес HelpDesk и убедитесь, что создаётся тикет.
  3. Авторизация администратора и изменение системных настроек.
  4. Загрузка вложения большого размера (проверьте client_max_body_size).
  5. Изменение прав доступа агента и проверка ограничений интерфейса.

Глоссарий (1‑строчный)

  • PHP-FPM: FastCGI Process Manager для PHP — отвечает за обработку PHP-запросов через сокеты или TCP.
  • Nginx: высокопроизводительный HTTP-сервер и реверс-прокси.
  • MySQL: реляционная СУБД, здесь используется версия 5.7.
  • ost-config.php: главный конфигурационный файл osTicket, содержащий параметры подключения к базе.

Часто задаваемые вопросы (FAQ)

Вопрос: Можно ли использовать другую версию MySQL или MariaDB?

Да. MariaDB обычно совместима с MySQL 5.7, но на этапе установки всегда проверяйте поддерживаемые версии osTicket и тестируйте на staging.

Вопрос: Нужно ли отключать каталог setup после установки?

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

Вопрос: Как включить HTTPS?

Настройте SSL-сертификат (Let’s Encrypt или коммерческий) и добавьте редирект с 80 на 443 в конфигурации Nginx.

Ссылки

Итог

osTicket можно быстро развернуть на Ubuntu 16.04 с Nginx и PHP-FPM 7.0, следуя шагам: установка зависимостей, конфигурация PHP-FPM и Nginx, создание БД, загрузка файлов и установка через веб-интерфейс. После установки обязательно провести базовую отладку, настроить HTTPS и резервные копии.

Экспортируйте и сохраняйте конфигурации, планируйте миграцию ОС и PHP на поддерживаемые версии, чтобы поддерживать безопасность и стабильность системы.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление предустановленных приложений на Android и iOS
Руководство

Удаление предустановленных приложений на Android и iOS

Dev Error 6068 в Warzone — как исправить
Игры

Dev Error 6068 в Warzone — как исправить

Проверить версию PowerShell в Windows
Системное администрирование

Проверить версию PowerShell в Windows

Как вручную установить расширение в Microsoft Edge
браузер

Как вручную установить расширение в Microsoft Edge

Установка osTicket на Ubuntu 16.04 с Nginx и PHP-FPM
Инструкции

Установка osTicket на Ubuntu 16.04 с Nginx и PHP-FPM

Установка MySQL 5.7 на CentOS 7 и Ubuntu 16.04
Базы данных

Установка MySQL 5.7 на CentOS 7 и Ubuntu 16.04