В этой статье я расскажу об установке и базовой настройке OTRS версии 5s из исходников.
Скачать исходники можно с официального сайта otrs.org или с github'a.
Склонируем репозиторий OTRS с github'a:
mkdir -p ~/Developer/otrs
git clone https://github.com/OTRS/otrs.git ~/Developer/otrs
Проверим наличие необходимых Perl-модулей, для этого в составе OTRS есть специальный скрипт, который выведит список установленных и неустановленных модулей:
perl ~/Developer/otrs/bin/otrs.CheckModules.pl
У большинства неустановленных модулей указано, что они опциональны, но лучше их все установить, кроме модулей DBD (из них нужно установить только тот, который будете использовать). Список модулей для установки на чистую MacOS:
- Crypt::Eksblowfish::Bcrypt
- Crypt::SSLeay
- DBD::mysql
- Encode::HanExtra
- JSON::XS
- Mail::IMAPClient
- Authen::NTLM
- Template
- Template::Stash::XS
- Text::CSV_XS
- YAML::XS
Установка производится командой:
sudo perl -MCPAN -e 'install [название::модуля]'
Проблем с установкой этих модулей быть не должно, за исключением модуля Crypt::SSLeay
. Установка этого модуля описана в другой статье.
После установки необходимых модулей приступаем к настройке веб-сервера. Я использую связку Nginx
+ PHP
+ MySQL
, установка которой описана в статье, но OTRS
на ней работает не очень стабильно, поэтому я запускаю его на Apache
.
Скопируем конфигурационный файл для Apache
, поставляемый с OTRS
, в /etc/apache2/other/otrs.conf
, предварительно заменив путь /opt/otrs
на /Users/[имя пользователя]/Developer/otrs
, где [имя пользователя]
это вывод команды whoami
:
username=$(whoami) && sudo sed -E 's//opt/otrs//Users/'$username'/Developer/otrs/'
< /Users/$username/Developer/otrs/scripts/apache2-httpd.include.conf
> /etc/apache2/other/otrs.conf.inc
Теперь создадим файл с общими настройками:
sudo tee /etc/apache2/other/custom.conf <<EOF
# Запускать Apache мы будем от имени лакального пользователя
User $(whoami)
Group staff
# Так как на 80-м порту у нас сидит Nginx, меняем порт
Listen 8080
# Включаем модули mod_perl и libphp5
LoadModule perl_module libexec/apache2/mod_perl.so
LoadModule php5_module libexec/apache2/libphp5.so
<IfModule mime_module>
AddHandler cgi-script .cgi
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
DocumentRoot "/Users/$(whoami)/Developer/otrs/var/httpd/htdocs"
<Directory "/Users/$(whoami)/Developer/otrs/var/httpd/htdocs">
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
MultiviewsMatch Any
DirectoryIndex index.html index.pl
AllowOverride All
Require all granted
</Directory>
include "/private/etc/apache2/other/otrs.conf.inc"
EOF
Так как мы расположили OTRS
по нестандартному пути /opt/otrs
, нужно в стартовом скрипте поменять пути:
cat ~/Developer/otrs/scripts/apache2-perl-startup.pl |
sed -E 's//opt/otrs//Users/'$(whoami)'/Developer/otrs/'
> ~/Developer/otrs/scripts/apache2-perl-startup.pl
Создадим конфигурационный файл из предлагаемого по умолчанию также с заменой пути /opt/otrs
:
sed -E 's//opt/otrs//Users/'$(whoami)'/Developer/otrs/' < ~/Developer/otrs/Kernel/Config.pm.dist > ~/Developer/otrs/Kernel/Config.pm
Перезапускаем Apache
:
sudo apachectl restart
Добавим некоторый настройки в /usr/local/etc/my.conf
:
max_allowed_packet = 30M
innodb_log_file_size = 512M
И перезапустим mysql
:
brew services restart mysql
Создадим файл с настройками nginx
в качестве прокси:
tee /usr/local/etc/nginx/servers/otrs.dev <<EOF
server {
listen 80;
server_name otrs.dev;
index index.pl;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8080;
}
}
server {
listen 80;
server_name customer.otrs.dev;
location = / {
return 301 http://customer.otrs.dev/otrs/customer.pl;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8080/;
}
}
EOF
Перезапускаем nginx
:
sudo brew services restart nginx
Вводим в браузере адрес http://otrs.dev/otrs/installer.pl
и видим приветствие установщика. Выполняем установку, отвечая на задаваемые вопросы. После чего установщик сгенерирует пароль администратора и можно пользоваться.