Установка osTicket (NGINX + PHP + MariaDB) в Ubuntu 18.04


0. Предварительные настройки системы

Переключитесь на root пользователя (все нижеследующие команды выполнять под root):
sudo -i
(Дополнительно) Настройте часовой пояс:
timedatectl set-timezone Europe/Moscow
Обновите систему:
apt update && apt dist-upgrade -y
Перезагрузите сервер:
reboot

1. Установка и настройка MariaDB

(Дополнительно) Добавьте официальный репозиторий для MariaDB (в данной статье 10.3) https://downloads.mariadb.org/mariadb/repositories:
apt install software-properties-common dirmngr gpg-agent
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.timeweb.ru/mariadb/repo/10.3/ubuntu bionic main'
Установите сервер MariaDB:
apt update
apt install mariadb-server
Настройте MariaDB (необходимо изменить пароль для root пользователя, остальное можно оставить по умолчанию):
mysql_secure_installation
 Создайте базу данных для osTicket:
mysql -u root -p
mysql> CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> GRANT ALL PRIVILEGES ON osticket.* TO osticket@localhost IDENTIFIED BY 'ostpswd';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;
2. Установка и настройка PHP

(Дополнительно) Добавьте репозиторий для новых версий PHP:
apt install software-properties-common dirmngr gpg-agent
add-apt-repository ppa:ondrej/php
apt update
Установите PHP-FPM (для osTicket v1.12 рекомендуется использовать php 7.2):
apt install php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-gd php7.2-mysql php7.2-mbstring php7.2-curl php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-json php7.2-opcache php7.2-readline php7.2-imap php7.2-intl php7.2-ldap php-apcu
Отредактируйте php.ini:
nano /etc/php/7.2/fpm/php.ini
Измените нижеследующие параметры (не забудьте убрать ; спереди изменяемого параметра):
cgi.fix_pathinfo = 0
date.timezone = Europe/Moscow
Перезапустите php-fpm:
systemctl restart php7.2-fpm.service

3. Установка и настройка NGINX

(Дополнительно) Добавьте репозиторий для новых Stable версий NGINX:
apt install software-properties-common dirmngr gpg-agent
add-apt-repository ppa:ondrej/nginx
apt update
Или для новых Mainline версий NGINX (т.к. это самый свежий релиз могут возникнуть разного рода проблемы, для надёжности рекомендую использовать Stable версию):
apt install software-properties-common dirmngr gpg-agent
add-apt-repository ppa:ondrej/nginx-mainline
apt update
Установите NGINX:
apt install nginx
Запуск и автозагрузка NGINX:
systemctl start nginx
systemctl enable nginx
Удалите ссылку на конфигурационный файл по умолчанию:
rm /etc/nginx/sites-enabled/default
Создайте конфигурационного файла для osTicket:
nano /etc/nginx/sites-available/osticket.conf
Необходимо заполнить нижеследующее:
server {
    listen   80;

    server_name localhost;

    root /var/www/html/osticket;

    charset utf-8;

    access_log  /var/log/nginx/access_osticket.log;
    error_log  /var/log/nginx/error_osticket.log;

    index index.php;

    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;
    }

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

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

    location ~ ^/ajax.php/.*$ {
        try_files $uri $uri/ /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;
        fastcgi_param  PATH_INFO        $path_info;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}
Активируйте конфигурацию:
ln -s /etc/nginx/sites-available/osticket.conf /etc/nginx/sites-enabled/
Проверьте конфигурационный файл:
nginx -t
Результат должен быть такой:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите NGINX:
nginx -s reload

4. Установка и настройка osTicket

Загрузите последнюю версии osTicket (https://osticket.com/download/ или https://github.com/osTicket/osTicket/releases/):
cd /tmp && wget https://github.com/osTicket/osTicket/releases/download/v1.12/osTicket-v1.12.zip
Разархивируйте в директорию веб-сервера:
apt install unzip
unzip osTicket*.zip
mkdir -p /var/www/html/osticket/
mv upload/* /var/www/html/osticket/
cp /var/www/html/osticket/include/ost-sampleconfig.php /var/www/html/osticket/include/ost-config.php
Измените владельца файлов и директорий для osTicket:
chown -R www-data:www-data /var/www/html/osticket/
chmod -R 0744 /var/www/html/osticket/
Далее перейдите на http://IP_адрес_сервера:80 и заполните требуемые поля. Для подключения к базе данных используйте следующее:
MySQL Table Prefix: ost_
MySQL Hostname: localhost
MySQL Database: osticket
MySQL Username: osticket
MySQL Password: ostpswd
Удалите директорию setup и настройте права доступа для ost-config.php:
rm -rf /var/www/html/osticket/setup/
chmod 0644 /var/www/html/osticket/include/ost-config.php
Поздравляю, osTicket установлен успешно.

Комментариев нет

Отправить комментарий