首页 > 代码库 > Bugzilla+MySql+IIS+ActivePerl搭建指南

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,使用方法如下:

image

配置数据库。

image

上述就是MySql服务器的简单配置。

 

3. 安装Perl

    按照安装包一步一步走下去,最后,将安装包中bin目录添加到系统环境变量中,如果在命令行中显示出如下变量,则表示安装成功。

image

    Bugzilla需要Perl的一系列插件,直接在命令行中输入ppm upgrade –install 就可以安装所有Perl的插件

(其实,只要安装Bugzilla需要的就可以了,手贱点快,幸好网速快,下载过程蛮顺利)

和Ubuntu的apt更新源类似,peri也是从源上获取更新插件包,为了加快perl下载速度,可以添加perl源到ppm管理器中。

image

出现其他perl下载的问题,可以点此尝试解决。

4. 配置Bugzilla

  进入Bugzilla目录,手动执行checksetup.pl,该脚本会检查所有必需的perl模块是否安装,缺啥安装啥。等到所有的都安装好之后,再次执行checksetup.pl,会在当前目录下生成localconfig文件。

有如下的关键几项需要我们来配置:

image

image

改成和MySql中配置的一样就可以,配置完后,再次执行checksetup.pl,经过耐心的等待,输入SMTP服务器地址、Bugzilla管理员名称和密码就可以了。

 

5. 配置IIS

我是用Win7自带的IIS来作为Web服务器的。Win7旗舰版默认没有开启这个服务。因此,需要先开启这些服务。

WIn+R,输入OptionalFeatures,打开Windows功能,选上如下的功能。

image

 

继续Win+R,输入inetmgr,打开Windows IIS配置管理工具。

基本的新建新建应用程序等一些基本设置,点此进入了解。下面介绍遇到的各种坑。

 

第一个坑:

在配置IIS的时候,访问目录无权限

image

解决方法:点击基本设置->连接为,默认选中的是“应用程序用户”,选择上面的特定用户,输入登陆电脑的用户名和密码。

 

第二个坑:

在添加脚本映射时,出现如下错误:

image

原因是没有包含CGI ASP功能

解决方法:选上下述功能就可以了,

image

同类问题解决方案,点此了解。

 

第四个坑:设置脚本映射出错

解决方法:在Default Web Site目录下设置处理程序映射

image

 

第五个坑:

添加应用程序账户后,在浏览器中输入http://localhost时,出现如下错误:

image

或者

image 

解决方法:

添加脚本映射,请求路径选择*.pl,可执行文件根据实际情况,选择perl.exe –T %s %s,名称选择 Perl Script Map.还需要添加一个脚本映射,处理*.cgi的脚本。在这里,看到网上有很多人修改了Bugzilla目录下面所有cgi脚本的头文件解释路径,将#!/usr/bin/perl -wT替换为#!/usr/bin/perl -w,不修改,也是可以安装成功的。

image

这里的话,-T的参数一定要加上,弹出的提示框中,一定要点是。之前,我被网上的Installing under IIS 7.5给误导了。点了否,结果,怎么折腾都折腾不出来,气死人,后来点是,就可以了。此时,我深深的了解到,实践才是检验真理的唯一标准

 

上述大概就是在折腾IIS中遇到的各种坑。

 

6.配置Bugzilla

在注册账户的时候,发送邮件时出现下面的错误, image

怀疑是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,

image

 

设置了cookie相关后,在重新登陆后,出现如下错误:

image

经过这个博客给出的解决方法,博客地址为Bugzilla的Cookie问题,不能解决这个问题。在重新设置Bugzilla,每执行完一个设置后,重新开一个网页登陆尝试,看看有没有 刷新后需要重新登陆的问题。最后定位到一个参数的配置

shutdownhtml,特别加红,以示警戒。最后,如果这个属性设置了值,不管是什么数值,都会导致上述的原因,解决的方法是不设置这个参数。至于更深层次的原因,不是很了解。在google上面找到这个Bug,点此进入。

 

Bugzilla上传附件失败,弹出如下提示:

image     问题原因:用于上传附件的lib/CGI.pm程序中使用了默认的临时文件夹/usr/temp,而在windows系统中没有此文件夹,因此,可以在lig/CGI.pm中修改临时文件夹地址,修改如下:

image

 

7. 汉化Bugzilla

字体汉化:将前面下载的汉化包,解压,将顶层文件夹改名为cn,拷贝到template目录下就可以了。

帮助文件:将doc目录下的en文件夹整个复制一份出来,该名为cn,这样就确保了在中文环境下,显示帮助文件不正常的问题。

 

8. 总结

经过两天的部署学习,MySql+ActivePerl+IIS+Bugzilla终于取得成功,心中积累的郁闷一扫而空,这几天我所犯下的错误和遇到的问题,都总结出来并且尝试着找到解决方法去解决,网络的力量很强大,利用好google,(如果有人想上google,可以给我发邮件,我有上google的好宝贝,嘿嘿)。

希望这篇文章可以帮助更多在安装Bugzilla路上迷惑的人。

---------------------------分割线-----------------------------------------------

可恶的房东要收回房子,给他儿子娶媳妇用,11月底又要搬家了,希望一切平稳过渡。

下个星期,倒腾一下Testopia和hMailserver,看看好不够好用。

Bugzilla+MySql+IIS+ActivePerl搭建指南