В этой статье я расскажу об установке и базовой настройке 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 и видим приветствие установщика. Выполняем установку, отвечая на задаваемые вопросы. После чего установщик сгенерирует пароль администратора и можно пользоваться.