Установка Mantis Bug Tracker на Windows
By: Date: 29.02.2012 Categories: !RUS,MantisBT
ENG: Installing Mantis Bug Tracker for Windows

На примере установки Mantis Bug Tracker 1.2.8 на Windows 7 (на Windows 2008 установка будет идентична).

По мотивам статьи Personal Bug Tracking with Mantis on Windows (by Walter Vannini).

Сам Mantis — это просто набор PHP скриптов и для его работы нужны еще web-сервер, который работает с PHP и база данных. В качестве web-сервера использую Internet Information Server (IIS), т.к. он включен в состав ОС (но по умолчанию не установлен) и он постоянно и своевременно обновляется через Windows Update. Так же можно использовать Apache. Что выбрать IIS или Apache — это дело вкуса, т.к. Mantis это обычно не высоконагруженный web-сервис и можно не заморачиваться тюнингом web-сервера. В качестве БД буду использовать MySQL, т.к. из всех СУБД которые поддерживает Mantis (MySQL (4.1.x or higher), MS SQL, PostgreSQL and DB2) — MySQL наиболее мне знакома.

Порядок установки

(в конце каждого пункта проводиться проверка корректности установки)

1) Установка IIS (7.0)
2) Установка MySQL (5.5.21)
3) Установка PHP (5.3.10)
4) Установка Mantis (1.2.8)
5) Создание базы MySQL для Mantis и его конфигурирование
6) Установка phpMyAdmin (опционально)
7) Резервное копирование БД MySQL

Установка IIS

Версия IIS 7.0 (такая включена в состав Windows 7).

(Можно установить боле новую версию IIS или просто другую, чем та что включена в состав ОС. Для этого дистрибутив IIS нужно скачать с Microsoft Download, например Internet Information Services (IIS) 7.5 Express).

Запустить ПускПанель управленияПрограммы и компоненты.

Выбрать Включение или отключение компонентов Windows.

Поставить галочку «Службы IIS» (остальные галочки в подпунктах выберутся сами).

По идее IIS после установки стартует и запускается Default Web Site. Но у меня порт 80 оказался занят другим приложением и поэтому сайт не запустился с Ошибка 0×80070020 при попытке запуска веб-узла в IIS 7.0.

Решил перенастроить Default Web Site на порт 8888. Для этого:

Запустить ПускАдминистрированиеУправление компьютером.

Выбрать Службы и приложенияДиспетчер служб IIS — … — Default Web Site.

На закладке Действия выбрать Привязки.

image
©Bobrovsky Dmitry
В появившемся окне нажать Изменить. В появившемся окне в поле Порт набрать 8888 и нажать ОК. Нажать Закрыть.
©Bobrovsky Dmitry
image

Теперь сайт можно запустить и проверить что всё работает. Нажать Начало и Обзор *:8888 (http).

image

Должен открыться браузер с картинкой

image

Если это так — то IIS работает.

Установка MySQL

Версия 5.5.21. Скачать можно с MySQL Downloads (Generally Available).

Запускаю mysql-installer-5.5.21.0.msi. (Подробно не расписываю ,т.к. всё ясно по картинкам)

SNAGHTML1e56e500

SNAGHTML1e57331f

Выбираю пропуск проверки наличия новой версии, т.к. только что скачал дистрибутив с сайта.

SNAGHTML1e57e223

Для Mantis не нужно ничего лишнего, поэтому Server only. Еще здесь можно изменить путь установки и папку для баз по умолчанию.

SNAGHTML1e596bcc

SNAGHTML1e5aedb7

SNAGHTML1e5b447e

Идет процесс установки

SNAGHTML1e5bb7aa

SNAGHTML1e5c0d0a

Здесь выбирается сколько памяти будет использовать MySQL на компьютере. Т.к. я ставлю не на сервер, а на свою рабочую станцию, то я хочу чтобы MySQL использовал минимальное количество памяти.

SNAGHTML1e5e0176

Ввожу пароль для root, остальное оставляю по умолчанию.

SNAGHTML1e5f164d

Идет конфигурирование системы. У меня вышло предупреждение что конфигуратор не смог добавить правило для firewall для порта 3306. Мне это не критично, поэтому ничего не делаю. Если доступ по сети к mysql нужен, тогда нужно разобраться с этой ситуацией и возможно добавить это правило вручную.

SNAGHTML1e617138

SNAGHTML1e61c3bb

Установка MySQL закончена.

Для проверки что сервер работает, можно запустить ПускВсе программыMySQLMySQL Server 5.5MySQL 5.5 Command Line Client, в появившемся окне ввести пароль  пользователя root — должно появиться приглашение mysql>.

SNAGHTML1e7235fd

Установка PHP

В документации Mantis рекомендуемая версия PHP 5.2.x. Но на момент написания статьи версия PHP 5.3. Ставлю её на свой риск.

Можно пойти по более длинному (особенно для тех кто разбирается) и скачать дистрибутив с http://www.php.net (точнее PHP For Windows). Так же если вы хотите установить именно рекомендованную версию PHP 5.2, тогда это единственный вариант.

Но есть другой вариант. На мой взгляд он удобнее. Можно запустить установку PHP с PHP on Windows. (Здесь версию PHP выбрать нельзя и обычно устанавливается последний стабильный релиз).

image

image

Далее предлагается скачать PHP53.exe. Скачиваю его и запускаю. Запускается Microsoft Web Platform Installer.

SNAGHTML1e8630ef

Нажимаю Настройка и выбираю IIS (на всякий случай). Если нажать Устанавливаемые элементы, то видно какие элементы будут установлены.

SNAGHTML1e8a13fd

SNAGHTML1e8b1045

SNAGHTML1e8e5244

Далее

SNAGHTML1e8effa3

Идет установка

SNAGHTML1e8f6825

SNAGHTML1e8fa40c

SNAGHTML1e903707

Всё, установка PHP завершена.

Для проверки создайте текстовый файл C:\inetpub\wwwroot\testphp.php с таким содержимым

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php echo "<p>Hello World</p>"; ?>
<?php phpinfo() ?>
</body>
</html>

Затем в браузере в адресную строку ввести http://localhost:8888/testphp.php.
Dmitry Bobrovsky
В браузере должна отобразиться строка «Hello World», а затем табличка с параметрами PHP.
Dmitry Bobrovsky
SNAGHTML1ea49991

Если это так — то PHP работает.

Для проверки что PHP может взаимодействовать с MySQL создайте текстовый файл C:\inetpub\wwwroot\testphp2.php с таким содержимым

<html>
<head><title>PHP and SQL Integration Test</title></head>

<body>

<?php
$link = mysql_connect("localhost", "", "") or die("Could not connect");
print "Connected successfully";

$query = "SELECT now()";
$result = mysql_query($query)
or die("Query failed");

print "<table>n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "t<tr>n";
foreach ($line as $col_value) {
print "tt<td>$col_value</td>n";
}
print "t</tr>n";
}
print "</table>n";

mysql_close($link);
?>

</body>

</html>

Затем в браузере в адресную строку ввести http://localhost:8888/testphp2.php.

В браузере должны отобразиться строки «Connected successfully» и текущая дата на сервере MySQL.

Установка Mantis Bug Tracker на Windows

Последнюю стабильную версию можно взять отсюда http://www.mantisbt.org/download.php или отсюда http://sourceforge.net/projects/mantisbt/files/mantis-stable (что одно и тоже). На данный момент такая версия — 1.2.8.

1) Создать папку C:\inetpub\wwwroot\mantis.

2) Содержимое папки mantisbt-1.2.8 скачанного архива mantisbt-1.2.8.zip скопировать в папку C:\inetpub\wwwroot\mantis.

В общем это вся установка.

Создание базы MySQL для Mantis и его конфигурирование

Для создания БД запустить в браузере http://localhost:8888/mantis/admin/install.php.

Ввести пароль для пользователя root и нажать Install/Upgrade Database.

SNAGHTML1ec6dd16

После создания БД, появиться страница, где каждый пункт должен быть «GOOD«. Здесь предупреждения можно игнорировать.

SNAGHTML1ed4ac09

А вот ниже действительно проблема. Не смог создаться файл config_inc.php. Далее указано решение — создать его вручную с указанным содержимым. Но лучше взять шаблон C:\inetpub\wwwroot\mantis\config_inc.php.sample, исправить все указанные параметры в нем и сделать его копию в config_inc.php.

ВНИМАНИЕ: у меня в шаблоне почему-то тэг <?php был не закрыт.

ПРИМЕЧАНИЕ: В документации в главе Configuration описаны все возможные параметры.

SNAGHTML1ed8ceb5

Короче у меня получился такой файл config_inc.php.

<!--?php <br ?--># MantisBT - a php based bugtracking system

# MantisBT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# MantisBT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with MantisBT.  If not, see <http://www.gnu.org/licenses/>.

/**
* @package MantisBT
* @copyright Copyright (C) 2000 - 2002  Kenzaburo Ito - kenito@300baud.org
* @copyright Copyright (C) 2002 - 2011  MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
*/

# This sample file contains the essential files that you MUST
# configure to your specific settings.  You may override settings
# from config_defaults_inc.php by assigning new values in this file

# Rename this file to config_inc.php after configuration.

# In general the value OFF means the feature is disabled and ON means the
# feature is enabled.  Any other cases will have an explanation.

# Look in http://www.mantisbt.org/docs/ or config_defaults_inc.php for more
# detailed comments.

# --- Database Configuration ---
$g_hostname      = 'localhost';
$g_db_username   = 'root';
$g_db_password   = 'mypass';
$g_database_name = 'bugtracker';
$g_db_type       = 'mysql';

# --- Anonymous Access / Signup ---
$g_allow_signup                = ON;
$g_allow_anonymous_login    = OFF;
$g_anonymous_account        = '';

# --- Email Configuration ---
$g_phpMailer_method        = PHPMAILER_METHOD_MAIL; # or PHPMAILER_METHOD_SMTP, PHPMAILER_METHOD_SENDMAIL
$g_smtp_host            = 'localhost';            # used with PHPMAILER_METHOD_SMTP
$g_smtp_username        = '';                    # used with PHPMAILER_METHOD_SMTP
$g_smtp_password        = '';                    # used with PHPMAILER_METHOD_SMTP
$g_administrator_email  = 'administrator@example.com';
$g_webmaster_email      = 'webmaster@example.com';
$g_from_name            = 'Mantis Bug Tracker';
$g_from_email           = 'noreply@example.com';    # the "From: " field in emails
$g_return_path_email    = 'admin@example.com';    # the return address for bounced mail
$g_email_receive_own    = OFF;
$g_email_send_using_cronjob = OFF;

# --- Attachments / File Uploads ---
$g_allow_file_upload    = ON;
$g_file_upload_method    = DATABASE; # or DISK
$g_absolute_path_default_upload_folder = ''; # used with DISK, must contain trailing or /.
$g_max_file_size        = 5000000;    # in bytes
$g_preview_attachments_inline_max_size = 256 * 1024;
$g_allowed_files        = '';        # extensions comma separated, e.g. 'php,html,java,exe,pl'
$g_disallowed_files        = '';        # extensions comma separated

# --- Branding ---
$g_window_title            = 'MantisBT';
$g_logo_image            = 'images/mantis_logo.gif';
$g_favicon_image        = 'images/favicon.ico';

# --- Real names ---
$g_show_realname = OFF;
$g_show_user_realname_threshold = NOBODY;    # Set to access level (e.g. VIEWER, REPORTER, DEVELOPER, MANAGER, etc)

# --- Others ---
$g_default_home_page = 'my_view_page.php';    # Set to name of page to go to after login
?>

Теперь можно войти в Mantis http://localhost:8888/mantis логин по умолчанию username = administrator

password = root.

SNAGHTML1f23d951

Получаем два предупреждения. Можно на них забить — всё будет работать. Но чтобы не мозолили глаза:

1) Переименовать папку C:\inetpub\wwwroot\mantis\admin в C:\inetpub\wwwroot\mantis_admin.

2) Переименовать пользователя administrator в admin (или еще как). И поменять ему пароль через пункт «My Account«.

SNAGHTML1f27c67d

Всё! Можно работать.

Установка phpMyAdmin (опционально)

phpMyAdmin — это приложение написанное на PHP и обеспечивающее полноценную, в том числе удаленную, работу с базами данных MySQL через браузер.

Для работы Mantis — phpMyAdmin абсолютно не нужен. Но если вы захотите покапаться в базе MySQL, то делать это через phpMyAdmin будет очень удобно.

Версия 3.4.10.1. Скачать из http://php-myadmin.ru/download/

1) Создать папку C:\inetpub\wwwroot\phpMyAdmin.

2) Содержимое папки phpMyAdmin-3.4.10.1-all-languages скаченного архива phpMyAdmin-3.4.10.1-all-languages.zip скопировать в C:\inetpub\wwwroot\phpMyAdmin.

3) Создать конфигурационный файл C:\inetpub\wwwroot\phpMyAdminconfig.inc.php. Для этого взять шаблон C:\inetpub\wwwroot\phpMyAdminconfig.sample.inc.php, исправить все указанные параметры в нем и сделать его копию в config.inc.php.

ПРИМЕЧАНИЕ: можно вместо ручного создания файла использовать мастер http://localhost:8888/phpMyAdmin/setup, но у меня были с ним проблемы, не смотря на это содержимое файла там всё же можно получить и потом вставить в пустой файл  config.inc.php.

Вот мой конфиг, полученный с помощью setup

<!--?php /* * Generated configuration file * Generated by: phpMyAdmin 3.4.10.1 setup script * Date: Tue, 28 Feb 2012 16:00:16 +0400 */ /* Servers configuration */ $i = 0; /* Server: localhost [1] */ $i++; $cfg['Servers'][$i]['verbose'] = ''; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; /* End of servers configuration */ $cfg['DefaultLang'] = 'en'; $cfg['ServerDefault'] = 1; $cfg['blowfish_secret'] = '4f4cc1c5c48971.54426595'; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; ?-->

4) Всё. Можно запускать http://localhost:8888/phpMyAdmin и входить, например, под root.

SNAGHTML1f3bf808

пример

SNAGHTML1f3cb3f7

Резервное копирование БД MySQL

Для резервирования MySQL существует множество разных способов и сторонних программ. Но для быстрого копирования достаточно простого батника использующего mysqldump.

Здесь нужно только учесть что mysqldump делает дамп на конкретный момент времени и восстановление потом будет происходить именно на этот  момент времени, поэтому чтобы минимизировать потери, дамп нужно делать как можно чаще.

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe" -hlocalhost -uroot -pmypass --compact bugtracker > c:\backup\bugtracker.sql
"C:\Program Files\WinRAR\WinRAR.exe" m -s -m5 -ep -md1024 -agYYYYMMDDHHMM c:\backup\bugtracker.rar c:\backup\bugtracker.sql

Запись Установка Mantis Bug Tracker на Windows впервые появилась Dmitry Bobrovsky Blog