Bugzilla+MySql+IIS+ActivePerl搭建指南
头在忙着他的技术研究,对团队建设、测试管理、流程规范都不怎么理会,眼见着产品进入后期整合阶段,在测试过错中出现很多Bug,单靠着我一个人用txt来收集整理bug需求,然后整理成word,放在svn上面去,然后邮件通知各模块负责人去修正,效率太慢了。拿着工程师的钱,干着项目经理的事情,哎。
抱怨完了,该干活的开始干活。
Bugzilla是一开源Bug Tracking System,是专门为Unix定制开发的。但是在windows平台下依然可以成功安装使用.
Testopia是一款和Bugzilla集成到一起的test case management系统.
它的强大功能表现在以下几个方面:
1. 强大的检索功能
2. 用户可配置的通过Email公布Bug变更
3. 历史变更记录
4. 通过跟踪和描述处理Bug
5. 附件管理
6. 完备的产品分类方案和细致的安全策略
7. 安全的审核机制
8. 强大的后端数据库支持
9. Web,Xml,Email和控制界面
10. 友好的网络用户界面
11. 丰富多样的配置设定
12. 版本间向下兼容
安装部署
1. 下载安装文件
先从官网上面下载Bugzilla安装包,看一些ReadMe,它是基于Perl写的,数据库使用的是MySql,
Perl下载地址点此。MySql下载地址点此。Web服务器就用系统自带的IIS。Bugzilla下载地址点此。
Bugzilla的汉化包下载地址点此。
将Bugzilla解压到D盘,放在Bugzilla目录下,安装Bugzilla需要Perl相关组件,此处先放一放。
2. 安装MySql数据库
我下载的是zip安装包,这和网上一些教程介绍的安装包安装方法不一样,一路next下去就好了。MySql提供两种安装方式,
一种是msi格式,另一种是zip格式,各有各的好处,zip格式的MySql安装教程点此。
安装好MySql后,需要新建一个Bug数据库和一个访问Bug数据库的MySql账户。
先将MySql的Bin目录添加到系统的环境变量中去,后续的Perl也是一样,需要将可执行文件的路径添加到系统环境变量中去。
以root用户登录进MySql,使用方法如下:
配置数据库。
上述就是MySql服务器的简单配置。
3. 安装Perl
按照安装包一步一步走下去,最后,将安装包中bin目录添加到系统环境变量中,如果在命令行中显示出如下变量,则表示安装成功。
Bugzilla需要Perl的一系列插件,直接在命令行中输入ppm upgrade –install 就可以安装所有Perl的插件
(其实,只要安装Bugzilla需要的就可以了,手贱点快,幸好网速快,下载过程蛮顺利)
和Ubuntu的apt更新源类似,peri也是从源上获取更新插件包,为了加快perl下载速度,可以添加perl源到ppm管理器中。
出现其他perl下载的问题,可以点此尝试解决。
4. 配置Bugzilla
进入Bugzilla目录,手动执行checksetup.pl,该脚本会检查所有必需的perl模块是否安装,缺啥安装啥。等到所有的都安装好之后,再次执行checksetup.pl,会在当前目录下生成localconfig文件。
有如下的关键几项需要我们来配置:
改成和MySql中配置的一样就可以,配置完后,再次执行checksetup.pl,经过耐心的等待,输入SMTP服务器地址、Bugzilla管理员名称和密码就可以了。
5. 配置IIS
我是用Win7自带的IIS来作为Web服务器的。Win7旗舰版默认没有开启这个服务。因此,需要先开启这些服务。
WIn+R,输入OptionalFeatures,打开Windows功能,选上如下的功能。
继续Win+R,输入inetmgr,打开Windows IIS配置管理工具。
基本的新建新建应用程序等一些基本设置,点此进入了解。下面介绍遇到的各种坑。
第一个坑:
在配置IIS的时候,访问目录无权限
解决方法:点击基本设置->连接为,默认选中的是“应用程序用户”,选择上面的特定用户,输入登陆电脑的用户名和密码。
第二个坑:
在添加脚本映射时,出现如下错误:
原因是没有包含CGI ASP功能
解决方法:选上下述功能就可以了,
同类问题解决方案,点此了解。
第四个坑:设置脚本映射出错
解决方法:在Default Web Site目录下设置处理程序映射
第五个坑:
添加应用程序账户后,在浏览器中输入http://localhost时,出现如下错误:
或者
解决方法:
添加脚本映射,请求路径选择*.pl,可执行文件根据实际情况,选择perl.exe –T %s %s,名称选择 Perl Script Map.还需要添加一个脚本映射,处理*.cgi的脚本。在这里,看到网上有很多人修改了Bugzilla目录下面所有cgi脚本的头文件解释路径,将#!/usr/bin/perl -wT替换为#!/usr/bin/perl -w,不修改,也是可以安装成功的。
这里的话,-T的参数一定要加上,弹出的提示框中,一定要点是。之前,我被网上的Installing under IIS 7.5给误导了。点了否,结果,怎么折腾都折腾不出来,气死人,后来点是,就可以了。此时,我深深的了解到,实践才是检验真理的唯一标准。
上述大概就是在折腾IIS中遇到的各种坑。
6.配置Bugzilla
在注册账户的时候,发送邮件时出现下面的错误,
怀疑是Bugzilla的SMTP没有配置好。根据 网上的Bugzilla使用手册及解决方案,需要确认在data/目录下的param文件,参数配置是否正确。第二是,查看SMTP认证插件和服务器的邮件服务器开启没有。
下面是配置例子:
maintainer : 123@163.com
mail_delivery_method : SMTP
mailfrom : 123@163.com
sendmailnow: on
smtpserver : smtp.163.com
smtp_username: 123@163.com
smtp_password : **********
这里需要注意的是: maintainer、mailfrom必须相同,SMTP_username邮箱必须是真实存在的邮箱,smtp_password是真实邮箱对于的密码。
经过上述的配置,邮件已经发送成功。
提示:如果忘记了Bugzilla管理员的密码,可以 ./checksetup.pl --reset-password=管理员邮箱,就可以修改密码了。
基本的Bugzilla配置
urlbase : 指向你安装路径的URL,该URL会在新用户注册邮件中使用,用于注册登陆以及内网用户访问。
设置为Bugzilla所在的服务器IP即可。假设IP为192.168.1.100,则需要设置为http://192.168.1.100/
特别备注:当设置完此项设置后,之后的登陆就不能用localhost来登陆了,而是需要用设置的urlbase来登陆才行,我在这里卡主了一个多小时,设置了这个参数之后,在localhost里面注销再次登陆时,怎么就登陆不上去了,在地址栏中输入urlbase的地址后,才登陆成功了。
能够犯的错误都犯一次,下次就不会再犯错误了。看到网上一些教程,一切都很顺利的样子,我在这两天的搭建中,几乎是不可能这样顺利的,犯错,反思,搜索,总结记录,再犯错,再反思,再搜索总结和记录,这样才能更加深入的理解。
cookiepath:帮助浏览器正确的管理cookie。
maintainer : Bugzilla的主维护人
requirelogin: 登陆验证,防止匿名用户登录。
createemailregexp: 注册账号名称限制,如果设置为”.*”,任何人都可以创建他的账户。
如果设置为“@mycompany.com$”,只允许拥有myconpany账户的用户注册申请。
如果设置为空,仅仅管理员可以创建新账户,普通用户不允许申请账户。
allow_attachment_display: 是否允许浏览器窗口打开附件,默认为Off,这是为了防止附件中隐藏的恶意行为
如果要打开此项设置,需要指明附件所在地址,属性名称为attachment_base.例如:配置为http://www/Bugzilla.com/,则附件的下载地址为:http://www/Bugzilla.com/attachment.cgi?id=6
默认单次上传附件最大为1MB,我现在把它改为20M。
1. 配置maxattachmentsize 改为20000
2. 配置MySql的max_allowed_packet参数。进入MySql,
设置了cookie相关后,在重新登陆后,出现如下错误:
经过这个博客给出的解决方法,博客地址为Bugzilla的Cookie问题,不能解决这个问题。在重新设置Bugzilla,每执行完一个设置后,重新开一个网页登陆尝试,看看有没有 刷新后需要重新登陆的问题。最后定位到一个参数的配置
shutdownhtml,特别加红,以示警戒。最后,如果这个属性设置了值,不管是什么数值,都会导致上述的原因,解决的方法是不设置这个参数。至于更深层次的原因,不是很了解。在google上面找到这个Bug,点此进入。
Bugzilla上传附件失败,弹出如下提示:
问题原因:用于上传附件的lib/CGI.pm程序中使用了默认的临时文件夹/usr/temp,而在windows系统中没有此文件夹,因此,可以在lig/CGI.pm中修改临时文件夹地址,修改如下:
7. 汉化Bugzilla
字体汉化:将前面下载的汉化包,解压,将顶层文件夹改名为cn,拷贝到template目录下就可以了。
帮助文件:将doc目录下的en文件夹整个复制一份出来,该名为cn,这样就确保了在中文环境下,显示帮助文件不正常的问题。
8. 总结
经过两天的部署学习,MySql+ActivePerl+IIS+Bugzilla终于取得成功,心中积累的郁闷一扫而空,这几天我所犯下的错误和遇到的问题,都总结出来并且尝试着找到解决方法去解决,网络的力量很强大,利用好google,(如果有人想上google,可以给我发邮件,我有上google的好宝贝,嘿嘿)。
希望这篇文章可以帮助更多在安装Bugzilla路上迷惑的人。
---------------------------分割线-----------------------------------------------
可恶的房东要收回房子,给他儿子娶媳妇用,11月底又要搬家了,希望一切平稳过渡。
下个星期,倒腾一下Testopia和hMailserver,看看好不够好用。