По разным причинам может наступить момент, когда нам необходимо развернуть TestRail на своём сервере, а не держать его в облаке у разработчиков данной системы. Рассмотрим вариант разворачивания системы на Debian.
Все команды, которые будут упоминаться здесь мы будем выполнять в терминале. С сервером работаю по SSH с помощью программы «putty», которая позволяет вставлять в терминал скопированные данные (по нажатию на правую кнопку мыши). Это удобно особенно когда надо в редактор файлов вставлять много текста, чтобы его не набирать руками. На данный момент будет использоваться Debian 8.9. Он установлен чистый без всяких дополнений и веб-серверов, поэтому разворачивание системы будем проводить поэтапно:
1. Установка и настройка apache, Maria DB (тот же MySQL), php, phpMyAdmin в Debian
2. Установка TestRail на Debian.
Мой сервер в локальной сети имеет IP = 192.168.1.150 далее с ним и будем работать и по тексту будем писать «IP».
Устанавливаем Apache
sudo apt install apache2
Проверяем, что Apache установился, для этого переходим в браузере по IP нашего сервера и видим следующее:

Устанавливаем Maria DB
sudo apt install mariadb-server mariadb-client
После установки настроим Maria DB, для этого вводим команду:
sudo mysql_secure_installation
На первый запрос ввода пароля для root ничего не вводим, если во время установки не указывали пароль для root и нажимаем Enter, иначе вводим пароль для root. Далее как на скриншоте:

Устанавливаем PHP
sudo apt install php5-common libapache2-mod-php5 php5-cli
После установки PHP нам необходимо перезапустить apache:
sudo service apache2 restart
Теперь проверим установку PHP.
Перейти в каталог, где хранятся страницы сайта по умолчанию:
cd /var/www/html
Создадим файл с помощью редактора NANO:
sudo nano info.php
Пропишем в файле:
<?php phpinfo(); ?>
Сохраним «CTRL + O», закроем «CTRL + X».
Перейдём по адресу «IP/info.php» и увидим следующее:

Удалим этот файл (для безопасности):
sudo rm -i /var/www/html/info.php
Настраиваем PHP под TestRail
Данный раздел нужен только, если вы далее будете устанавливать TestRail.
Для TestRail необходимо установить «ionCube PHP Loader». Для этого определяем версию Debian (32-х или 64-х разрядная):
uname –a

У меня 64-х разрядная.
x86_64 = 64-х разрядная
i386 = 32-х разрядная
Скачиваем и распаковываем архив с «ionCube PHP Loader».
Для 64-х разрядной:
cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfz ioncube_loaders_lin_x86-64.tar.gz
Для 32-х разрядной:
cd /tmp
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfz ioncube_loaders_lin_x86.tar.gz
Распакуется в папку «/tmp/ioncube». В папке будет множество файлов для различных версий PHP. Узнаём свою версию PHP:
php –v

Узнаём где находятся дополнения PHP:
php -i | grep extension_dir

У вас может быть другой путь. Копируем требуемую нам версию ionCube в требуемый нами каталог (для моего случая так):
sudo cp /tmp/ioncube/ioncube_loader_lin_5.6.so /usr/lib/php5/20131226/
Вы у себя цифру «5.6» заменяете на свою версию PHP, а также правите в пути «20131226» на свой.
Теперь подключим данное расширение в PHP. Правим следующие php.ini файлы:
sudo nano /etc/php5/apache2/php.ini
sudo nano /etc/php5/cli/php.ini
Допишем в самом начале этих файлов:
zend_extension = /usr/lib/php5/20131226/ioncube_loader_lin_5.6.so
Сохраним и закроем.
Ещё необходимо установить cURL. Устанавливаем:
sudo apt install php5-curl
После всех манипуляций обязательно перезапустим apache:
sudo service apache2 restart
Устанавливаем phpMyAdmin
sudo apt install phpmyadmin
Далее установщик по очереди у нас запросит:
— указать с каким сервером будем работать (указать «apache2»);
— разрешения на создания новой базы данных для хранения настроек phpMyAdmin (соглашаемся);
— ввести пароль пользователя root MySQL (указываем);
— придумать пароль для доступа phpMyAdmin к своей базе (придумываем).
После установки phpMyAdmin нам необходимо подключить в настройках apache файл настроек phpMyAdmin. Открываем на редактирование настройки apache:
sudo nano /etc/apache2/apache2.conf
Прописать в конце файла строку:
Include /etc/phpmyadmin/apache.conf
Сохраним «CTRL + O», закроем «CTRL + X».
Перезапустить apache:
sudo service apache2 restart
Проверяем работу phpMyAdmin, для этого переходим по адресу «IP/phpmyadmin» и видим:

Настраиваем Apache Virtual Hosts
Это нам необходимо, чтобы на одном сервере мы могли разворачивать любое количество сайтов и чтобы к каждому сайту мы могли обратиться по доменному имени, а не по IP (пример: victorz.ru). В нашем случае система будет в локальной сети, поэтому мы будем настраивать домен с именем «testrail.local».
Создаём каталог для будущего сайта:
sudo mkdir -p /var/www/testrail.local/public_html
Текущему пользователю назначаем права на этот каталог:
sudo chown -R $USER:$USER /var/www/testrail.local/public_html
Переменная $USER автоматически примет значение текущего пользователя, под которым мы сейчас работаем.
Назначаем всем соответствующие права на корневой каталог www:
sudo chmod -R 755 /var/www
Создаём файл настроек нашего сайта для apache:
sudo nano /etc/apache2/sites-available/testrail.local.conf
Прописываем следующее:
<VirtualHost *:80>
ServerAdmin admin@testrail.local
ServerName testrail.local
ServerAlias www.testrail.local
DocumentRoot /var/www/testrail.local/public_html
ErrorLog ${APACHE_LOG_DIR}/testrail_error.log
CustomLog ${APACHE_LOG_DIR}/testrail_access.log combined
</VirtualHost>
Сохраним «CTRL + O», закроем «CTRL + X».
Теперь включим наш новый сайт (включим новый файл виртуального хоста), для этого выполним команду:
sudo a2ensite testrail.local.conf
Увидим следующее:

Отключим сайт по умолчанию, который определяется с помощью файла настроек 000-default.confс:
sudo a2dissite 000-default.conf
Получим сообщение об отключении:

Перезапускаем apache:
sudo systemctl restart apache2
Теперь надо убедиться, что сайт работает.
Пропишите у себя на компьютере (не на настраивамом сервере) в файле «hosts» следующее:
192.168.1.150 testrail.local
Укажите IP своего настраиваемого сервера, я в примере указал IP своего сервера. Файл «hosts» в Windows находится по пути «c:\Windows\System32\drivers\etc\ hosts». В Linux по пути «/etc/hosts».
Далее создадим проверочный файл на сервере в каталоге нашего сайта:
nano /var/www/testrail.local/public_html/index.html
Пропишем в файле, что угодно, к примеру «WORK».
Сохраним «CTRL + O», закроем «CTRL + X».
Переходим в браузере по адресу «testrail.local» и видим, что сайт работает:

Удаляем файл проверки, так как туда будет загружен TestRail:
rm -i /var/www/testrail.local/public_html/index.html
Теперь приступим к разворачиванию TestRail.
Установка TestRail на Debian
Получаем дистрибутив с официального сайта (gurock.com/testrail). Копируем данные, которые скачали в каталог «/var/www/testrail.local/public_html» (не архив, а распакованные даные).
Заходим в phpmyadmin по адресу «IP/phpmyadmin» с учётной записью администратора базы данных (root). Создаём базу данных «testrail» и создаём учётную запись «user_testrail», которая имеет полный доступ только к базе данных «testrail», но без глобальных привилегий:


Здесь не будем расписывать, как создавать базы данных и пользователей через phpmyadmin.
Создаём каталоги TestRail для вложений, логов и отчётов:
sudo mkdir -p /var/www/testrail.local/logs
sudo mkdir -p /var/www/testrail.local/reports
sudo mkdir -p /var/www/testrail.local/attachments
Устанавливаем требуемые права на данные каталоги:
sudo chmod -R 777 /var/www/testrail.local/logs
sudo chmod -R 777 /var/www/testrail.local/reports
sudo chmod -R 777 /var/www/testrail.local/attachments
Переходим по адресу testrail.local и далее всё как на картинках (картинки кликабельны):





На следующем шаге проверяем что всё правильно указали и нажимаем «Install».
TestRail вам сообщит, что не смог записать настройки в файл в своём каталоге и попросит сохранить файл настроек вручную. Для этого создаём его:
nano /var/www/testrail.local/public_html/config.php
Вставляем, то что просит TestRail в данный файл, сохраняем и закрываем:

Теперь нам необходимо настроить планировщик, который будет ежеминутно с помощью PHP запускать файл «task.php» (зайдите в TestRail, и он вам об этом сообщит):

Для этого настроим «cron». Определим, по какому пути у нас находится php (далее нам понадобится):
which php

Открываем на редактирование файл с задачами cron-а, которые запускаются от имени администратора системы:
sudo crontab -e
Вписываем строку:
* * * * * /usr/bin/php /var/www/testrail.local/public_html/task.php
Сохраняем и закрываем. Данные запишутся в файл «root» в каталоге «/var/spool/cron/crontabs».
Перезапустим cron:
sudo service cron restart
Минуту ждём и в TestRail видим, что у нас каждую минуту стартует задание:

TestRail отправляет почту, формирует отчёты при запуске заданий и если мы не настроим, то не будут формироваться отчёты, которые мы будем в дальнейшем формировать, а также не будет отправляться почта из системы.
На этом настройка системы завершена.
Частые проблемы
Не установлен sudo в Debian. Устанавливаем (под администратором):
apt install sudo
nano /etc/sudoers
Добавить разрешение требуемому пользователю:

Отличная статья с подробным описанием. Однако немного потеряла актуальность в свете того что в 10 Debian пакет phpMyAdmin — не включен. Необходима ручная установка.