По разным причинам может наступить момент, когда нам необходимо развернуть 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 нашего сервера и видим следующее:

Установить TestRail на Linux (Debian) + настройка веб-сервера

Устанавливаем Maria DB

sudo apt install mariadb-server mariadb-client

После установки настроим Maria DB, для этого вводим команду:

sudo mysql_secure_installation

На первый запрос ввода пароля для root ничего не вводим, если во время установки не указывали пароль для root и нажимаем Enter, иначе вводим пароль для root. Далее как на скриншоте:

Установить TestRail на Linux (Debian) + настройка веб-сервера

Устанавливаем 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» и увидим следующее:

Установить TestRail на Linux (Debian) + настройка веб-сервера

Удалим этот файл (для безопасности):

sudo rm -i /var/www/html/info.php

Настраиваем PHP под TestRail

Данный раздел нужен только, если вы далее будете устанавливать TestRail.

Для TestRail необходимо установить «ionCube PHP Loader». Для этого определяем версию Debian (32-х или 64-х разрядная):

uname –a
Установить TestRail на Linux (Debian) + настройка веб-сервера

У меня 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
Установить TestRail на Linux (Debian) + настройка веб-сервера

Узнаём где находятся дополнения PHP:

php -i | grep extension_dir
Установить TestRail на Linux (Debian) + настройка веб-сервера

У вас может быть другой путь. Копируем требуемую нам версию 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» и видим:

Установить TestRail на Linux (Debian) + настройка веб-сервера

Настраиваем 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

Увидим следующее:

Установить TestRail на Linux (Debian) + настройка веб-сервера

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

sudo a2dissite 000-default.conf

Получим сообщение об отключении:

Установить TestRail на Linux (Debian) + настройка веб-сервера

Перезапускаем 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 на Linux (Debian) + настройка веб-сервера

Удаляем файл проверки, так как туда будет загружен 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», но без глобальных привилегий:

Установить TestRail на Linux (Debian) + настройка веб-сервера
Установить TestRail на Linux (Debian) + настройка веб-сервера

Здесь не будем расписывать, как создавать базы данных и пользователей через 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 и далее всё как на картинках (картинки кликабельны):

Установить TestRail на Linux (Debian) + настройка веб-сервера
Установить TestRail на Linux (Debian) + настройка веб-сервера
Установить TestRail на Linux (Debian) + настройка веб-сервера
Установить TestRail на Linux (Debian) + настройка веб-сервера
Установить TestRail на Linux (Debian) + настройка веб-сервера

На следующем шаге проверяем что всё правильно указали и нажимаем «Install».

TestRail вам сообщит, что не смог записать настройки в файл в своём каталоге и попросит сохранить файл настроек вручную. Для этого создаём его:

nano /var/www/testrail.local/public_html/config.php

Вставляем, то что просит TestRail в данный файл, сохраняем и закрываем:

Установить TestRail на Linux (Debian) + настройка веб-сервера

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

Установить TestRail на Linux (Debian) + настройка веб-сервера

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

which php
Установить TestRail на Linux (Debian) + настройка веб-сервера

Открываем на редактирование файл с задачами 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 на Linux (Debian) + настройка веб-сервера

TestRail отправляет почту, формирует отчёты при запуске заданий и если мы не настроим, то не будут формироваться отчёты, которые мы будем в дальнейшем формировать, а также не будет отправляться почта из системы.

На этом настройка системы завершена.

Частые проблемы

Не установлен sudo в Debian. Устанавливаем (под администратором):

apt install sudonano /etc/sudoers

Добавить разрешение требуемому пользователю:

Установить TestRail на Linux (Debian) + настройка веб-сервера