UML软件工程组织

Bugzilla Windows安装红宝书
songsong

一直寻找合适的Bug Tracking System,网上找了很久,commercial的太贵,还有licence限制,远远超出我等贫民的承受范围。也曾考虑干脆自己写一个算了,但终究未能如愿。对Bugzilla倒是早有所闻,只可惜好像在Linux下比较好安装,在windows上却难上加难。在Bugzilla的document和FAQ中可见一斑: Making Bugzilla work on windows is still a very painful processes. The Bugzilla Team is working to make it easier, but that goal is not
 considered a top priority. If you wish to run Bugzilla, we still recommend doing so on a Unix based system such as GNU/Linux. As of this
 writing, all members of the Bugzilla team and all known large installations run on Unix based systems. 

If after hearing all that, you have enough pain tolerance to attempt installing Bugzilla on Win32, here are some pointers. Because this 
is a development version of the guide, these instructions are subject to change without notice. In fact, the Bugzilla Team hopes they do
 as we would like to have Bugzilla resonabally close to "out of the box" compatibility by the 2.18 release.

A.6.1. What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)? 
Remove Windows. Install Linux. Install Bugzilla. The boss will never know the difference. 
本人花了差不多两天时间,终于基本上在windows 2000 professional上安装上了bugzilla,现在贡献出来,希望对大家能有所帮助。

一、安装Perl

1、下载ActivePerl,可以到华军软件园去搜索(http://www.onlinedown.net/),我下载的是ActivePerl-5.8.0.806-MSWin32-x86.msi,
安装到D:\Perl(安装路径可自定,以下同)

2、打开D:\Perl\Lib\CPAN.pm 查找并更改$CPAN: defaultsite ||= "ftp://ftp.perl.org/pub/CPAN";;为$CPAN:   efaultsite ||= "http://cpan.shellhung.org";;,主要是为了提高下面安装其他perl模块时的下载安装速度。 

二、安装Mysql 

1、下载Mysql(http://www.onlinedown.net/),我下载的是mysql-4.0.15-win.zip,直接安装即可。同时可以下载安装mysqlcc-0.9.3-win32.zip,
这是mysql的管理软件,挺好用的。

2、修改mysql的root用户密码

E:\>cd mysql
E:\mysql>cd bin
E:\mysql\bin>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD('<new_password'>) WHERE user='root';  
mysql>FLUSH PRIVILEGES; 

其中<new_password>为root用户的新密码。更改密码后,要用root用户访问mysql,必须使用mysql -u root -p,按提示敲入正确的root密码。

3、创建bugs用户,并赋给相应的权限
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX, ALTER,CREATE,DROP,REFERENCES,LOCK TABLES,CREATE TEMPORARY TABLES ON bugs
.* TO bugs@localhost IDENTIFIED BY '<bugs_password>';  
mysql> FLUSH PRIVILEGES;  
要记住bugs用户的密码,在下面的bugzilla配置文件要用。

4、创建bugs数据库
mysql>create database bugs;

三、下载Bugzilla(www.bugzilla.org)
最好下载bugzilla-2.17.4,如果安装2.16好像要改很多perl脚本,我没有安装成功:(
解压到E:\Bugzilla

四、配置IIS

1、打开控制面板->管理工具->Internet Information Services, 再Default Web Site右键选择Properties-> Home Dictory-> Configuration,在

App Mappings中点击Add增加如下资料
Executable: D:\Perl\bin\perl.exe "%s" %s
Extension: .pl
Limit to: GET,HEAD,POST

Executable: D:\Perl\bin\perl.exe "%s" %s
Extension: .cgi
Limit to: GET,HEAD,POST

注意Perl.exe的路径

2、Default Web Site中增加Virtual Directory: Bugzilla。Access Permission增加Execute。

3、选择刚建立的虚拟目录Bugzilla,右键选择Properties-> Documents。Default Documents中增加index.cgi。

五、安装Bugzilla 

bugzilla目录下有一个checksetup.pl脚本。这个脚本写的简直太好了,它既可以检查bugzilla需要的perl模块是否已安装,又可以创建
数据库的表及admin用户。不过需要改几个地方才能够在windows下正常使用。在/bugzilla/docs/html/Bugzilla-Guide.html中有如下描述:

4.3.1.3.1. Changes to checksetup.pl
In checksetup.pl, the line reading:
my $mysql_binaries = `which mysql`;        
to
my $mysql_binaries = "D:\\mysql\\bin\\mysql";
       
And you'll also need to change:
my $webservergid = getgrnam($my_webservergroup) 
to
my $webservergid = '8'

安装过程中还得改几个地方才能用。这在下面一步步介绍。

现在先运行cmd到dos下,进入bugzilla目录,运行perl checksetup.pl看看有什么提示信息。

1、安装perl模块

到cpan.shellhung.org,点击perl module->all module,下载AppConfig-1.55、CGI.pm-3.00、DBD-mysql-2.9002、DBI-1.38、Template-Toolkit-2.10、TimeDate-1.16。perl模块有两种安装方法,一种直接解压下载模块,进入其目录,运行
perl MakeFile.pl
nmake
nmake test
nmake install
(安装了VC就会有nmake)

另一种是运行ppm <module name>,DBD-mysql-2.9002、DBI-1.38最好用这种方式。
安装完成后可以运行perl checksetup.pl检查是否bugzilla需要的perl模块都安装完毕。

2、修改checksetup.pl

3751~3756行注释掉:
    #$SIG{HUP}  = \&bailout;
    #$SIG{INT}  = \&bailout;
    #$SIG{QUIT} = \&bailout;
    #$SIG{TERM} = \&bailout;

 #system("stty","-echo");  # disable input echoing

3759和3769这两行也要注释掉,否则它老是提示你输入admin密码。

3、运行perl checksetup.pl,如果没有什么错误提示,会生成localconfig文件

4、修改localconfig文件

$index_html = 1 (生成index.html)
$mysqlpath = "e\\mysql\\bin" (你的mysql\bin路径)
$webservergroup = "8"
$db_user = "bugs" (mysql的登陆用户名)
$db_pass = '<bugs_password>'(mysql bugs用户的登陆密码)

5、再次运行perl checksetup.pl, 系统提示创建Administrator的相关邮件,Realname,密码的资料。
最后,如果成功,最后会提示Reminder: Bugzilla now requires version 8.7 or later of sendmail 

6、修改所有的cgi文件,去掉第一行的最后一个字符T

打开浏览器,键入http://localhost/bugzilla即可进入bugzilla登陆界面

7、修改bugzilla为中文界面

到http://sourceforge.net/projects/bugzilla-cn/下载bugailla-2.17.4-cn-0.92.tar.gz,
把解压后的cn目录copy到E:\bugzilla\template,然后修改E:\bugzilla\Bugzilla\template.pm文件,
在76行增加my $languages = "cn"。在打开浏览器试试,是不是变成中文呢?呵呵。
BTW,本人从来不懂perl和cgi。

 

版权所有:UML软件工程组织