Установка системы заявок (helpdesk) OpenSupports на сервер

28.05.2019

Коротко о системе OpenSupports

OpenSupports — это опенсорс система заявок (hrlpdesk). Лёгкий интерфейс, возможность работы с тикетами как с авторизацией по email, так и без авторизации пользователей вовсе, предлагая создать тикет через форму и следить за ним по выданному ID. Коротко о всех фишках можно посмотреть тут, а ещё можно покрутить демку онлайн. Разве что для счастья нехватает авторизации через LDAP, но на git разработчики уверяли что обязательно допилят данный функционал. Приступим к установке!

Окно авторизации для пользователей OpenSupports
Окно авторизации для пользователей OpenSupports

Для начала установим чистую Ubuntu на сервер. Для этого я взял установочный образ ubuntu-18.04.1.0-live-server-amd64. Не думаю что с этим могут возникнуть проблемы. Далее далее ок готово! А вот систему лучше обновить. Подключаемся к серверу через Putty или через CMD

ssh root@IP_адрес_сервера
sudo apt update
sudo apt upgrade

И установим LAMP сервер

sudo apt-get install tasksel
sudo tasksel install lamp-server

Настройка Apache2

Включим модуль mpm_prefork. Этот модуль будет использоваться для обработки запросов. Ну и mod_rewrite соответственно тоже включим.

sudo a2dismod mpm_event
sudo a2dismod mpm_worker
sudo a2enmod mpm_prefork
sudo a2enmod rewrite

Использование файлов htaccess для настроек будет возможным после того как изменим значение AllowOverride с None на All для определённых директорий (/var/www).

sudo nano /etc/apache2/apache2.conf

Как поменяли, перезапускаем Apache

sudo systemctl restart apache2

Создадим директорию для системы OpenSupports, куда далее скачаем и распакуем архив с программой

sudo mkdir -p /var/www/html/opensupports

Теперь переходим в новый каталог, качаем архив, устанавливаем приложение zip (если его нет), распаковываем файлы и после удалим архив.

cd /var/www/html/opensupports
wget -O opensupports.zip https://github.com/opensupports/opensupports/releases/download/v4.4.0/opensupports_v4.4.0.zip
sudo apt-get install zip
unzip opensupports.zip
rm -R opensupports.zip

Теперь давайте нашего пользователя включим в группу, у которой будут права на редактирование этой директории

sudo groupadd webmasters
sudo gpasswd -a username webmasters
sudo chown -R root:webmasters /var/www/html/opensupports
sudo chmod 775 /var/www/html/opensupports

Пришло время для создания хост файла

nano /etc/apache2/sites-available/opensupports.conf
<VirtualHost *:80>
         ServerAdmin opensupports@itlocate.ru
         ServerName opensupports

         DocumentRoot /var/www/html/opensupports
         <Directory />
                 Options FollowSymLinks
                 AllowOverride All
         </Directory>
         <Directory /var/www/html/opensupports/>
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride All
                 Order allow,deny
                 allow from all
         </Directory>

         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         <Directory "/usr/lib/cgi-bin">
                 AllowOverride All
                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                 Order allow,deny
                 Allow from all
         </Directory>

         ErrorLog ${APACHE_LOG_DIR}/error.log

         # Possible values include: debug, info, notice, warn, error, crit,
         # alert, emerg.
         LogLevel warn

         CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Теперь, если мы перейдём в /etc/apache2/sites-available/, то увидим там помимо только что созданного хост файла ещё два стандартных. Давайте их отключим, включив наш хост.

sudo a2dissite default-ssl.conf 
sudo a2dissite 000-default.conf
sudo a2ensite opensupports.conf 

Перезапускаем Apache.

sudo systemctl reload apache2

Настройка PHP

Включим использование шорттегов, если они отключены. Ишем параметр и изменяем его при необходимости (short_open_tag = On)

sudo nano /etc/php/7.2/apache2/php.ini

Как поменяли, перезапускаем Apache

sudo systemctl restart apache2

Настройка MySQL

Настроем бд MySQL, затем создадим пользователя и дадим ему права на базу данных. Всё что зелёным цветом - замените на свои данные.

sudo mysql_secure_installation
mysql -u root -p
CREATE DATABASE database_name;
GRANT ALL PRIVILEGES ON database_name.* TO username@localhost IDENTIFIED BY 'password';
exit

Продолжаем установку через веб браузер

Мастер установки OpenSupports
Мастер установки OpenSupports

По сути всё о чём я писал выше — это установка и настройка обычного web сервера, а установка opensupports мало чем будет отличаться от установки любой cms (к примеру wordpress). На этапах установки нам будет предложено выбрать язык, базу и данные для подключения к ней. Единственное с чем я столкнулся, так это с тем что я не мог создавать тикеты, т.к. не хватало прав на каталог. Решение ниже.

sudo chmod -R 777 /var/www/html/opensupports/api

Вход для админов и пользователй отличаются, если для вторых вообще включена авторизация. Админы логинятся по http://IP_адрес_сервера/admin, а пользователи с главной http://IP_адрес_сервера.

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас 😉 !
Отдельное спасибо всем, кто отправляет донатики 😀! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.
6918