Mantis,这是一个开源的 Bug 跟踪管理系统,基于 PHP+MySQL,支持 Windows,要了解更多信息请到http://www.mantisbt.org/。
使用mantis目前最新版本,参考以前别人的配置,给出一个相对较完整的安装方案。
系统环境和所需软件包
Windows XP SP2
Apache 2.2.2 http://httpd.apache.org/download.cgi
PHP 5.1.4 http://www.php.net/downloads.php
MySQL 5.0.22 http://www.mysql.com/downloads/index.html
manits 1.0.3 http://www.mantisbt.org/download.php
jpGraph 2.1.2 http://www.aditus.nu/jpgraph/jpdownload.php
环境的搭建
php的环境的搭建可以在google搜索或者参阅php的帮助文件
显示图形界面需要php的 php_gd2.dll模块,请修改php.ini, 安装这个模块。
关于Apache、PHP和MySQL的具体配置,请网上搜索相关文章。
安装mantis
1. 安装mantis比较容易,将你下载mantis解压到网站的虚拟目录下,执行mantis的admin目录下的Install.php进行系统初始安 装。当然也通过命令行或者通过phpmyadmin等工具将sql目录下的db_generate.sql文件导入到数据库(这个数据库你可以导入到一个 单独的数据也可以到已有的数据库)。
2. 复制config_inc.php.sample,并改名为config_inc.php 然后更具你的数据库修改config.inc。
Mantis的设置是这样保存的:在config_defaults_inc.php中保存Mantis的默认设置,用户自己的设置信息保存在 config_inc.php中。如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用 config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例 子。
我们需要修改config_inc.php文件中的设置,设置很简单,各个参数的意义可以参见config_defaults_inc.php,这里对每 个参数都有详细的解释;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行 修改。
一些常用的配置:
数据库配置
$g_hostname = "localhost";
$g_db_username = "root";
$g_db_password = "";
$g_database_name = "bugtracker";
其他配置
$g_use_iis = ON; # 使用IIS
$g_show_version = OFF; # 不在页面下部显示 Mantis的版本号
$g_default_language = 'chinese_simplified'; # 默认语言为简体中文
$g_show_project_menu_bar = ON; # 显示项目选择栏
$g_show_queries_count = OFF; # 在页脚不显示执行的查询次数
$g_default_new_account_access_level = DEVELOPER; # 默认用户级别
$g_window_title = 'Mantis Bug 跟踪管理系统'; # 浏览器标题
$g_page_title = 'Mantis Bug 跟踪管理系统'; # 页面标题栏
$g_enable_email_notification = ON; # 开通邮件通知
文件上传设置:
默认为上传到数据库,你可以修改为上传到网站空间上,当然前提是你设置项目的时候给他一个可以上传的目录,比如在根目录下增加一个upload文件给他写权限。
$g_file_upload_method = DISK; # 保存到服务器空间
$g_max_file_size = 5000000; # mantis允许上传尺寸,前提是<=php.ini文件中上传允许的尺寸。
时间格式:
$g_short_date_format = 'Y-m-d'; # 短日期格式,Y 大写表示 4 位年
$g_normal_date_format = 'Y-m-d H:i'; # 普通日期格式
$g_complete_date_format = 'Y-m-d H:i:s'; # 完整日期格式
Mantis的初步安全设置
1)在Mantis目录下有一个admin目录,如果你在IE中打开这个目录下的index.php查看,你就会知道这个目录是进行Mantis Administration的,使用这个模块可以检查你的Mantis是否安装完全,对旧版本的Mantis进行升级,对Mantis的页面CSS文件 进行修改;使用这个管理模块是不需要用户名和密码的,因此任何人都可以通过这个管理模块查看你的Mantis系统信息,而且由于有升级模块,在这里还可以 直接对数据库进行修改;因此如果被未授权的人打开,结果会是什么样不用我多说;最好因此按照系统的建议,在配置完成后将这个admin目录删除;注意一定 是删除而不是改名!改名后仍然是可以访问的!
2)在添加一个管理员用户后,删除系统默认的administrator用户。
设置使用PHPMailer发送邮件
默认情况下,Mantis使用内置的Mailto()函数进行邮件的发送,包括新用户注册发送密码、Bug改变提醒、重设密码等邮件的发送都使用MailTo()来完成。不过实际使用中发现,MailTo函数好像不支持需要校验的邮件服务器。
如果你想使用比如163邮箱,就需要使用PHPMailer模块,mantis 1.0.3已经集成了PHPMailer,放在mantis的core目录下面。
在config_inc.php文件中添加
$g_smtp_host = 'smtp.mail.net'; # SMTP 服务器
$g_smtp_username = 'mailuser'; # 邮箱登录用户名
$g_smtp_password = 'mailpwd'; # 邮箱登录密码
$g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
$g_phpMailer_path = './core/phpmailer/'; # PHPMailer 的存放路径
$g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email
查找$g_return_path_email,将后面的邮件地址改为有效的地址,如[email protected],这一点非常重要,不然将无法正常发送激活注册的邮件.
config_inc.php其它邮件地址最好也改为有效的地址.
$g_smtp_username,$g_smtp_password在服务器需要验证时用,不需验证时不用加,或设为
$g_smtp_username=''
$g_smtp_password=''
现在你可以注册新用户,并使用发送邮件功能了。
安装JPGraph
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块。
1. 可以在http://www.aditus.nu/jpgraph/jpdownload.php下载最新版的JPGraph,请注意JPGraph 1.x 版本是针对php4,2.x 是针对php5的,请下载对应版本。
2. 将下载包解压到一个目录下,我解压到mantis下的jpgraph目录,定义为$JPGraph。
3. 然后在config_inc.php中添加下面几行:
$g_use_jpgraph = ON;
$g_jpgraph_path = './jpgraph/src/'; //你也可以按照你的地址填写文件的绝对路径。
4. 在php.ini将“;extension=php_gd2.dll”前面的分号删除,这个模块是JPGraph在显示图表和进行汉字编码转换是所必须的。
5. JPGraph的中文显示
据说1.0以后的版本已经能够很好的支持报表中文显示,但可能PHP5的问题,我这里还是乱码,这里列出参考别人的方法我所做的配置。
1) 如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的。
JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码。
解决方法是增加对图形设置字体的代码;
2) 打开$mantis/core/graph_api.php,查找:graph_get_font(),在其中添加一行
'chinese_gbk' => FF_SIMSUN,
3) 在config_inc.php文件中添加
$g_graph_font = 'chinese_gbk';
4) 打开$JPGraph/src/jpg-config.inc.php
查找 DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
改为 DEFINE('CHINESE_TTF_FONT','simsun.ttc');
jpg-config.inc.php也可以不改,如果生成的图形中的字体想由自己定义,可以这样改。
这个时候,如果你选择的语言是chinese_simplified,现在你的图形报表应该就可以显示中文了。
5) 但如果你选择语言跟我一样是chinese_simplified_utf8,则发现报表显示还是乱码。
原来JPGraph中处理的时候比较bt,只要看到字体设置是FF_SIMSUN,就认为字符串编码是GB2312,输出的时候都要转成UTF8,
单实际上已经是UTF8了,根本不用转。
我PHP比较弱,就直接这么修改代码了:
打开JPGraph下的jpgraph.php文件,搜索其中:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
if( $this->g2312 == null ) {
include_once 'jpgraph_gb2312.php' ;
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
}
改为:
elseif( $aFF === FF_SIMSUN ) {
// Do Chinese conversion
/*
if( $this->g2312 == null ) {
include_once 'jpgraph_gb2312.php' ;
$this->g2312 = new GB2312toUTF8();
}
return $this->g2312->gb2utf8($aTxt);
*/
return $aTxt;
}
就是把转换编码的代码注释掉,最好不要直接删掉了,不然以后想改回来就麻烦了。
这样改实际是有些问题,如果mantis中有部分用户的语言选择为chinese_simplified,另一部分选择为chinese_simplified_utf8就不行了,
总会有部分人报表出现乱码。所以一个小组一定要统一阿:-)
目前图形报表中文显示应该没有问题了。
作者:龚云卿 2005年8月
1 简介
缺陷管理贯穿于整个软件开发生命周期中, 是不可缺少的环节。Mantis是PHP/MySQL/Web-based缺陷跟踪系统,Mantis当前版本为1.0.0a3。关于产品详细信息和支持,请访问主页http://mantisbt.sourceforge.net/。
2 基本特性
1) 个人可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件;
2) 支持多项目、多语言;
3) 权限设置灵活,不同角色有不同权限,每个项目可设为公开或私有状态,每个缺陷可设为公开或私有状态,每个缺陷可以在不同项目间移动;
4) 主页可发布项目相关新闻,方便信息传播;
5) 方便的缺陷关联功能,除重复缺陷外,每个缺陷都可以链接到其他相关缺陷;
6) 缺陷报告可打印或输出为CSV格式:支持可定制的报表输出,可定制用户输入域;
7) 有各种缺陷趋势图和柱状图,为项目状态分析提供依据,如果不能满足要求,可以把数据输出到Excel中进一步分析;
8) 流程定制不够方便,但该流程可满足一般的缺陷跟踪;
9) 可以实现与CVS集成:缺陷和CVS仓库中文件实现关联;
10) 可以对历史缺陷进行检索。
3 功能详细
3.1 概要
问题跟踪系统主要功能包括:
1) 多项目管理
2) 问题录入
3) 问题查询和关键词检索
4) 问题更新
5) 问题讨论
6) 问题关联关系
7) 集成CVS
8) 个人显示和Email通知设定
9) 统计分析、报表生成和输出
10) 用户管理
11) 自定义域
12) 系统设置
13) 新闻发布
3.2 多项目管理
在系统页面,点击Manage->Manage Projects,可以进入项目管理界面。
显示已创建的项目列表,通过点击Create New Project,可以进入新建项目页面。
可以设定新项目当前状态。项目状态包括:development、release、stable和obsolete几种。
在已建项目列表中,可以修改项目数据。
可以修改的项目数据包括:项目状态,项目公开或私有属性,添加和修改子项目,为该项目添加和修改Categories,添加和修改项目发布版本,定义项目可使用的用户自定义域,添加和修改该项目用户及其权限属性。
3.3 问题录入
在系统界面,点击Report Issue进入问题录入界面,如果点击前,右上角项目选择为AllProject,那么填报问题前,需要先选择要填报的项目。
可以勾选"Make Default",这样每次填报的时候,进入该界面时,就为默认项目了。进入问题填报界面。
选择和输入Category、Reproduciblity、Impact、Severity、Summary、Description、Additional Information等信息,点击Submit Report即可。
输入页面中,可以添加和上传附件。
3.4 问题查询和关键词检索
在系统界面,点击View Issues可以进入问题查询结果页面。
在项目选择中,可以选择项目查看所属项目问题,点击查询结果区的字段名称,可以进行排序显示。
在页面上方区域是问题检索条件区,可以一览当前查询结果的查询条件,可以点击每个查询条件,可以修改该查询条件选项。
修改各查询条件参数,点击Apply Filter即可。该查询界面每个查询条件只能定义单一值。如果需要定义多值查询,可以在查询结果界面,点击Advanced Filters,界面刷新后,点击某查询条件,可以选择多个选项进行查询。
在查询结果页面,在查询条件区,可以在search文本框中输入要查询问题信息中的关键词,点击Apply Filter按钮,即可显示含有关键词的所有历史问题。
可以将当前查询条件保存为过滤器,并可快速选择,得到查询结果。在查询区中,点击Save Current Filter,可以命名并保存当前过滤器。
若当前过滤器查询条件已与已有过滤器条件相同,会在保存页面提示This particular query appears to already exist.。
输入待保存的过滤器,保存即可。这样在查询页面,通过选择过滤器来快速选择了。
在查询页面,点击Manage filters,可以管理过滤器。
3.5 问题更新
在查询结果页面,点击某个问题,可以进入问题详细页面。在问题详细页面,可以直接:
1) 点击Assign to按钮,将问题安排给相应人员解决;
2) 可以点击Due to按钮,添加问题责任人;
3) 点击Change Status to,修改问题状态;
4) 点击Monitor Issue,可以跟踪该问题;
5) 点击Create Clone,可以克隆一个新问题;
6) 点击Move Issue,可以将问题在不同项目间进行移动;
7) 点击Delete Issue,可以删除该问题。
也可以点击My View或者查询结果页面某条问题前的 ,进入问题详细页面。点击 可以直接下载问题的附件。
也可在系统菜单右侧的 中输入问题编号,即可进入问题详细页面。
点击Update Issue,可以修改问题的属性数据。
3.6 问题讨论
在各问题详细页面,可以在后面添加Note信息,将该问题的讨论、交互信息记录下来。
讨论信息可以进行编辑、删除和修改为私有状态。
3.7 问题关联关系
在 问题详细页面,可以设置该问题与其他问题之间的关联关系。每个问题都可以链接到其他相关问题。链接的关系分为:related to、parent of、child of、duplicate、has duplicate几种。可以对当前链接的问题进行删除,有关系冲突的可以设置最新的关联关系。
对于存在父子关系的问题,如果子问题没有解决,父问题的关联关系中会显示:Not all the children of this issue are yet resolved or closed. 提示子问题没有被全部解决。
对 于子问题没有全部解决的父问题,如果要设置为解决或者关闭的话,会在设置状态页面上方提示:ATTENTION. Not all the children of this issue are yet resolved or closed. Before resolving/closing a parent issue, all the issues related as child with this one should be resolved or closed.
通过点击问题详细页面中Relationships区域中的Relation Graph,可以查看与该问题的关联关系图。
点击Dependency Graph,可以查看当前问题的依存关系图。
在关联关系图和依存关系图中,鼠标移动到各问题ID方框时,可显示该问题ID的Status和Summary。
3.8 集成CVS
当将CVS文档提交到CVS服务器时,在log message中添加"issue #nnnn",
提交后,即可将该提交信息插入到issue #nnnn的Note中。点击该提交的文件版本链接,弹出commit前后版本比较信息页面。
通过点击系统菜单Docs-->CVSWeb,可以浏览CVS仓库。
3.9 用户相关问题显示
在 系统菜单My View,可以显示与当前用户相关的某个项目的问题,包括:Assigned to Me (Unresolved)、Unassigned、Reported by Me、Resolved、Recently Modified、Monitored by Me等。
3.10 个人显示和Email通知设定
个人可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件。在系统菜单中点击My Account,进入用户个人设定页面。可以在My Account选项中修改用户密码和用户邮件地址。
在Preferences 中设定缺省设置,可以对不同问题状态设定是否接收E-Mail,以及设定自己的系统界面语言,为了实现多语言使用,一般使用各对应语言的UTF-8,可以 选择的有:1)english_utf8; 2)chinese_simplified_utf8; 3)Chinese_tranditional_utf8; 4)japanese_utf8。
在Profiles中可以设定Platform、Operating System、Version等。
3.11 统计分析、报表生成和输出
在系统菜单点击Summary,显示该项目下问题统计Synthesis情况,包括按Project、Status、Date、Resolution、Severity、category等等进行统计的结果。
点击Summary表的上方图表按钮,分别有Per state、Per severity、Per impact、Per category和Per resolution的统计表。后面仅列出Per state表截图。
点击Advanced Summary,可以显示总体统计图表,包括Cumulative By Date图。
通过后台系统文件的设定,可以添加和修改统计图表。
点击Print Report,显示当前项目下的问题。
可以选择性的将问题导出到Excel和Word文件中。也可通过预览功能在IE中显示,并可存为html文件。
对于问题导出,还可以在问题查询结果页面中,通过点击CSV Export,导出为CSV文档。在问题查询结果页面,点击Print Report也可以进入打印报告页面。
3.12 用户管理
使用管理员帐户进入系统,点击系统菜单Manage-->Manage Users,进入用户一览页面。可以按用户ID的字母顺序筛选用户。
可 以点击各用户修改用户权限和信息,也可以点击Prune Accounts来阻止未登录的用户,可以点击Create New Account建立新帐户,建立新帐户时,可以是否激活该帐户,可以设定用户权限。用户权限包括:viewer、reporter、updater、 developer、manager和administrator(角色可以定制)。
权限可以在系统权限设置中来进行控制。
3.13 自定义域
通过点击系统菜单Manage-->Manage Custom Fields,用户可以自行添加和修改自定义域,添加数量没有限制。
自定义域的类型有:String、Numeric、Float、Enumeration、Email、Checkbox、List、Multiselection List、Date等。
可以设置是否在报告、更新、解决、关闭页面显示和必填,是否仅在高级查询条件页面显示。
3.14 系统设置
使用管理员权限进入系统,点击Manage-->Manage Configuration,进入系统设置页面。
Permissions Report页面显示了当前系统权限分配情况。
在Workflow Thresholds页面,可以设置不同角色权限。
在Workflow Transitions页面,可以设置工作流。可以根据公司流程来进行定制。可以设定问题各状态的最低权限角色。
3.15 新闻发布
编辑新闻发布后,可以在系统菜单Main中显示,这样用户一进入系统就可以看到了。