在网上查找BugZilla相关资料的时候发现了 Mantis,这也是一个开源的 Bug 跟踪管理系统,基于 PHP+MySQL,支持 Windows;相对于BugZilla,比较轻量级,不过对于我们的开发团队来说是完全够用了,所以我在放弃了BugZilla以后就转向了 Mantis 。
下面是我写的一个安装指南。
Bug 跟踪管理系统 Mantis 在 IIS5 下安装指南 v1.1
v1.1:修改部分错误;
修改JPGraph和PHPMailer设置部分路径误为C:\PHP\C:\PHP\...的错误;
JPGraph设置部分增加对PHP.INI中extension_dir的修改;
v1.0:完成于2004-03-18;
这是我写的一篇 Mantis 在 Windows IIS 下的安装指南,如果对你有帮助我会很高兴。
转载请注明出处。
和BugZilla一样,Mantis也是一个开源的Bug管理系统;基于PHP+MySQL,可以运行在Windows/xnix平台上;它的主页是http://www.mantisbt.org/,目前最新版本是0.18.2。
和BugZilla不一样的是,Mantis是轻量级的,在功能上相对比较少一些(特别是报表模块),不过对于小型的开发团队是完全够用了。
对于我来说,Mantis是完全够用了,而且最重要的一点是:Mantis直接提供对Windows平台的支持,不需要自己做n多的修改做出一个Hack版本才能运行在Windows平台上。在多次尝试使用BugZilla失败后,我转向了Mantis。
可能已经有人注意到了,Mantis是螳螂的意思,我想给Mantis起这个名字的人一定是希望这只螳螂能够把我们系统中的Bug统统吃掉吧:-D?
说明:
1.由于我使用的是IIS,没有使用apache,因此我下面的安装说明全部都是在IIS上进行的;
2.下面所说的操作都是我的事后回忆,有些细节可能不是很正确,如果有问题,请大家自己尝试解决,或与我联系:TurboNetCobra@hotmail.com(不可能每信必复,如果发送邮件后没有回音,敬请谅解);
3.文中所说的软件的最高版本号均为截止到2004-03-17的最高版本号;
好了,下面我们开始安装Mantis。
需要作的准备工作:
1.从http://www.mysql.com/downloads/index.html下载MySQL安装文件,请下载Windows安装文件,当前有多个版本可供下载,出于稳定起见,建议下载推荐的Production release (recommended),目前最高版本是4.0.18;同时可以下载MySQL Control Center,一个免费的MySQL图形管理界面程序;
2.从http://www.php.net/downloads.php下载PHP安装文件,目前最高版本4.3.4,请下载Windows安装文件;其中“PHP 4.3.4 installer”EXE包可以自动进行设置,但是比ZIP包缺少一些模块,如果需要使用图形报表功能,建议下载“PHP 4.3.4 zip package”ZIP包,因为图形报表需要使用到包括在ZIP报中的PHP扩展模块,不过ZIP需要自己手工设置;
提示:对于象我这样的懒人,你可以这样做:两个都下载,先安装EXE包自动完成设置工作,然后将ZIP包解压缩到PHP安装目录,覆盖原文件,然后手工修改PHP.ini配置文件,让PHP载入扩展模块,就可以得到一个完整的PHP安装包了*^_^*;
3.从http://www.mantisbt.org/download.php下载Mantis安装文件,目前最高版本是0.18.2;
4.(可选项)如果希望使用Mantis的PHPMailer发信功能和图形报表功能,则还需要PHP的PHPMailer模块和JPGraph模块,请分别到http://phpmailer.sourceforge.net 和http://www.aditus.nu/jpgraph/index.php下载,最新版本分别是1.71和1.14;
准备就绪,下面就可以开始安装了;
1.安装MySQL,建立数据库;
MySQL的安装很简单,解压缩下载得到的ZIP包,运行其中的setup.exe文件,然后就可以用“Next”大法轻松安装;这里假设你的MySQL安装在C:\MySQL下;
安装后运行C:\mysql\bin\下的winmysqladmin.exe文件,如果在系统任务栏显示绿灯,表示你的MySQL服务已经启动了;
1)修改MySQL默认的root用户密码:
在命令行下进入c:\mysql\bin,运行如下命令:
C:\>cd mysql
C:\mysql>cd bin
C:\mysql\bin>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD( ’<new_root_password’> ) WHERE user=’root’;
mysql>FLUSH PRIVILEGES;
说明:请将< new_ root_password>改为你设定的root用户的新密码。更改密码后,要用root用户访问mysql,必须使用mysql -u root -p,按提示输入入正确的root新密码。
2)创建mantis数据库:
注意:进行这一步以前,需要先把你的Mantis安装包解压缩,因为创建数据库需要用到其中的建表SQL文件。
mysql>create database mantis;
mysql>connect mantis;
mysql>source <mantis_path>\sql\db_generate.sql
说明:请将<mantis_path>改为你解压缩Mantis安装包的路径;
3)创建mantis用户,并赋给对Mantis数据库的相应权限:
mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, REFERENCES, LOCK TABLES,
CREATE TEMPORARY TABLES ON mantis.* TO mantis@localhost IDENTIFIED BY ’<mantis_password>’;
mysql>FLUSH PRIVILEGES;
说明:请将<mantis_password>改为你设定的mantis用户的密码;这个密码在下面的操作中要写到Mantis的配置文件中;
4)完成MySQL初始化工作,退出
mysql>exit
上面的数据库操作也可以直接在mysqlcc图形界面中完成。
2.安装PHP
我的安装方法就是上面说的懒人安装方法*^_^*,好像就没有什么特别操作了;在使用图表和PHPMail时需要修改PHP.ini,这些修改我会在后面讲到。
3.设置Mantis
1)打开IIS管理器,在默认网站中增加一个虚拟目录Mantis,指向你的Mantis解压缩目录(这里使用D:\WebSite\Mantis),在“属性”窗口的“文档”页面增加默认文档“index.php”;
2)将D:\WebSite\Mantis中的config_inc.php.sample复制一份,改名为config_inc.php,修改其中的设置;
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,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改。
下面是我的一些自定义参数,其中一些参数($g_use_jpgraph 和$g_use_phpMailer的设置请参照下面的内容):
$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_use_jpgraph = ON; # 使用图形报表
$g_jpgraph_path = ’C:/PHP/includes/JPGraph/src/’; # JPGraph路径
$g_window_title = ’Mantis Bug 跟踪管理系统’; # 浏览器标题
$g_page_title = ’Mantis Bug 跟踪管理系统’; # 页面标题栏
$g_enable_email_notification = ON; # 开通邮件通知
$g_smtp_host = ’smtp.mail.net’; # SMTP 服务器
$g_smtp_username = ’mailuser’; # 邮箱登录用户名
$g_smtp_password = ’mailpwd’; # 邮箱登录密码
$g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
$g_phpMailer_path = ’C:/PHP/includes/PHPMailer/’; # PHPMailer 的存放路径
$g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email
$g_file_upload_ftp_server = ’ftp.yourftp.com’; # 上传文件 FTP
$g_file_upload_ftp_user = ’ftpuser’; # FTP 登录用户名
$g_file_upload_ftp_pass = ’ftppwd’; # FTP 登录密码
$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了,打开IE,输入http://localhost/mantis,应该就可以看到Mantis的登录页面了,你可以用默认用户名administrator和密码root登录进去,进行管理设置。
4.Mantis的初步安全设置
1)在Mantis目录下有一个admin目录,如果你在IE中打开这个目录下的index.php查看,你就会知道这个目录是进行Mantis Administration的,使用这个模块可以检查你的Mantis是否安装完全,对旧版本的Mantis进行升级,对Mantis的页面CSS文件进行修改;使用这个管理模块是不需要用户名和密码的,因此任何人都可以通过这个管理模块查看你的Mantis系统信息,而且由于有升级模块,在这里还可以直接对数据库进行修改;因此如果被未授权的人打开,结果会是什么样不用我多说;最好因此按照系统的建议,在配置完成后将这个admin目录删除;注意一定是删除而不是改名!改名后仍然是可以访问的!
2)在添加一个管理员用户后,删除系统默认的administrator用户。
5.PHPMail的设置
默认情况下,Mantis使用内置的Mailto()函数进行邮件的发送,包括新用户注册发送密码、Bug改变提醒、重设密码等邮件的发送都使用MailTo()来完成,不过实际使用中发现,MailTo函数好像不支持需要校验的邮件服务器,比如我的263邮箱每次都提示需要校验,所以我给PHP安装了PHPMail模块,设置Mantis使用PHPMailer发送邮件。
1)下载PHPMailer:从http://phpmailer.sourceforge.net下载,最新版本是1.71;
2)安装PHPMailer:将下载下来的phpmailer-1.71.zip解压缩到C:\PHP\includes \PHPMailer目录下;
3)修改Windows目录下的PHP.ini,找到include_path,增加C:\PHP\includes \PHPMailer目录;
4)如上表所示,设置$g_use_phpMailer、$g_phpMailer_path和$g_phpMailer_method三个参数;
5)现在应该就可以使用PHPMailer进行邮件发送了;
6.图形报表的设置
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:从http://www.aditus.nu/jpgraph/index.php下载JPGraph的安装文件,目前最高版本是1.14;
2)将下载下来的jpgraph-1.14.tar.gz解压缩到C:\PHP\includes目录下;
3)打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
4)修改Windows目录下的PHP.ini文件,将“;extension=php_gd2.dll”和“;extension=php_iconv.dll”两行前面的分号删除;另外如果extension_dir项不正确,请把extension_dir改为正确的值(应该是extension_dir = "./extensions/",我这里不知道为什么是extension_dir = "./",大概就是因为使用懒人安装方法的缘故吧);
5)将C:\PHP\dlls下面的iconv.dll复制到Windows\System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
6)修改JPGraph的src目录下的jpgraph.php;将CACHE_DIR和TTF_DIR分别定义为Windows下的Temp目录和Fonts目录,如下所示
DEFINE("CACHE_DIR","E:/WinTemp/Temp/jpgraph_cache");
DEFINE("TTF_DIR","C:/WinNT/Fonts/");
7)现在再打开Mantis的统计页面,可以看到多了分别按状态等进行统计的图形报表,包括柱图、饼图和线图;
8)不过如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的,JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码,解决方法是在Mantis\core\graph_api.php中增加对图形标题等设置字体的代码;
对于柱图和线图,要设置图形标题和x、y轴标题、节点标题:
//Set the title and axis font if the default_language is set to chinese
if (config_get(’default_language’) == ’chinese_simplified’){
$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->yaxis->SetFont(FF_SIMSUN,FS_NORMAL);
}
else if (config_get(’default_language’) == ’chinese_traditional’){
$graph->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->yaxis->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->xaxis->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->xaxis->SetFont(FF_CHINESE,FS_NORMAL);
$graph->yaxis->SetFont(FF_CHINESE,FS_NORMAL);
};
对于饼图,要设置图形标题和图例名称:
//Set the title and legend font if the default_language is set to chinese
if (config_get(’default_language’) == ’chinese_simplified’){
$graph->title->SetFont(FF_SIMSUN,FS_NORMAL);
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL);
}
else if (config_get(’default_language’) == ’chinese_traditional’){
$graph->title->SetFont(FF_CHINESE,FS_NORMAL);
$graph->legend->SetFont(FF_CHINESE,FS_NORMAL);
};
大家可以找到位置自己修改,简单的说就是在graph_api.php中每个“$graph->title->Set(…”后面根据当前的图表是柱图、线图还是饼图分别加上上面两段;
9)现在你的图形报表应该就可以显示中文了。
好了,Mantis的配置工作到此就结束了,现在你的Mantis功能应该是完全而且是安全的了,相对于BugZilla,Mantis的确很“轻量”,不过我的想法是够用就好,对于小团队,Mantis足够应付80%的日常Bug管理工作了。