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

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 — используйте надёжный пароль.
Запустите и перезапустите службы:
systemctl restart nginx
systemctl restart mysql
Включите автозапуск:
systemctl enable nginx
systemctl enable mysql
Проверьте, что службы слушают порты:
netstat -plntu
Вы должны увидеть порт 80 для Nginx и порт 3306 для 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://
Шаг 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;
После этого база данных готова.
Примечание: в продакшене используйте сильные пароли и разбивайте привилегии по необходимости.
Шаг 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-модули, затем обновите страницу.
Нажмите Continue (Продолжить). В разделе «System Settings» задайте название HelpDesk и адрес по умолчанию. В разделе «Admin User» заполните данные администратора (почта администратора должна отличаться от адреса HelpDesk).
В настройках базы данных укажите параметры, созданные на шаге 3 (osticket_db, osticket, osticketpw@).
Нажмите Install Now и дождитесь окончания установки.
После завершения удалите или переименуйте каталог setup и выставьте права на файл конфигурации:
cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php
Шаг 7 — Тестирование
Домашняя страница osTicket:
http://osticket.hakase-labs.com/
Панель администратора:
http://osticket.hakase-labs.com/scp/
Панель агента:
http://osticket.hakase-labs.com/scp/index.php
Страница настроек администратора:
http://osticket.hakase-labs.com/scp/settings.php
Контрольный чеклист перед запуском (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 и другим чувствительным директориям.
Мини-методология внедрения (быстрый план внедрения)
- Подготовка инфраструктуры: сервер, DNS, резервное копирование.
- Установка зависимостей: Nginx, MySQL, PHP-FPM и расширения.
- Создание БД и пользователя с ограниченными правами.
- Настройка виртуального хоста и прав доступа.
- Установка osTicket через веб-интерфейс в тестовом окружении.
- Тестирование функциональности и метрик.
- Перенос в продакшен и включение 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)
- Ошибка «500 Internal Server Error» — проверьте журналы Nginx (/var/log/nginx/error.log) и права на файлы.
- Отсутствие PHP-расширений — на странице установки будет видно красные отметки; установите требуемые пакеты и перезапустите php-fpm.
- Проблемы с подключением к БД — проверьте host, имя пользователя, пароль и привилегии; попробуйте подключиться из командной строки mysql с теми же данными.
- Белая страница или ошибки парсинга — убедитесь, что файлы не повреждены при распаковке и что include/ost-config.php корректен и читабелен веб-сервером.
- Почта не отправляется — настройте SMTP или используйте внешний SMTP-сервер; проверьте логи MTA и настройки почты в osTicket.
Критерии приёмки
- Главная страница osTicket доступна по HTTP(S).
- Администратор может войти в /scp/ с заданными учетными данными.
- Агент видит список тикетов и может создавать/редактировать тикеты.
- Отправка и получение почты (интеграция входящей и исходящей почты) функционирует корректно.
- Резервные копии базы данных и файлов настроены и протестированы.
Тестовые сценарии (Test cases)
- Создание тикета через публичную форму: проверьте, что тикет появляется у агентов.
- Создание тикета через email: отправьте письмо на адрес HelpDesk и убедитесь, что создаётся тикет.
- Авторизация администратора и изменение системных настроек.
- Загрузка вложения большого размера (проверьте client_max_body_size).
- Изменение прав доступа агента и проверка ограничений интерфейса.
Глоссарий (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: http://osticket.com/wiki/Main_Page
Итог
osTicket можно быстро развернуть на Ubuntu 16.04 с Nginx и PHP-FPM 7.0, следуя шагам: установка зависимостей, конфигурация PHP-FPM и Nginx, создание БД, загрузка файлов и установка через веб-интерфейс. После установки обязательно провести базовую отладку, настроить HTTPS и резервные копии.
Экспортируйте и сохраняйте конфигурации, планируйте миграцию ОС и PHP на поддерживаемые версии, чтобы поддерживать безопасность и стабильность системы.
Похожие материалы

Удаление предустановленных приложений на Android и iOS
Dev Error 6068 в Warzone — как исправить

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

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

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