关闭

Bugzilla在Window2000上安装–2.18版本

发表于:2007-4-14 15:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:pcl    来源:51testing博客

   最近由于客户需要我帮助他们在Windows上的安装Bugzilla,在网上找了好多资料都是很早的以前的,问了好多人都没有用过,用过的也是好多年以前自己都没有安装100%成功,求人不如求己,所以自己开始动手丰衣足食!
1. 安装mysql-4.0.18-win(默认安装C盘)
修改mysql的root用户密码:
C:\>cd mysql
C:\mysql>cd bin
C:\mysql\bin>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD(‘<new_password>’) WHERE user='root';
例如:UPDATE user SET Password=PASSWORD('pcl'>) WHERE user='root';
mysql>FLUSH PRIVILEGES;

mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, REFERENCES, LOCK TABLES, CREATE TEMPORARY TABLES ON bugs.* TObugs@localhostIDENTIFIED BY '<bugs_password>';
例如:mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP, REFERENCES, LOCK TABLES, CREATE TEMPORARY TABLES ON bugs.* TObugs@localhostIDENTIFIED BY 'admin';
请注意这里我把bugs-password的密码改为admin,请注意这里修改后边localconfig文件的时候需要用到的密码和这个一样!

mysql> FLUSH PRIVILEGES;
说明:要记住bugs用户的密码,在下面的bugzilla配置文件要用。
创建bugs数据库:
mysql>create database bugs;
mysql>exit

2. 安装ActivePerl和相关Module
 这里我安装的是ActivePerl v5.8.4.810.rar,安装在C盘,安装路径是:C:\Perl
 安装Perl moudle组件包,组件包 AppConfig,Chart,DBD-mysql,DBI,File-Spec,File-Temp,GD,GDGraph,GDTextUtil,Getopt-Long,PatchReader,Template-Toolkit,TimeDate这几个模块!(以上模块可以在网上寻找下载,如果找不到可以联系我,我提供给大家)

3. 安装Bugzilla
下载2.18版本bugzilla!解压到c盘!
1) 打开【控制面板】->【管理工具】->【Internet 服务管理器】,在【默认 Web 站点】点按右键选择【属性】->【主目录】->【配置…】,在【应用程序映射】中点击【添加】,增加如下资料:
   Perl脚本解析器:(*.pl)
可执行文件: C:\Perl\bin\perl.exe "%s" %s
扩展名: .pl
仅限于: GET,HEAD,POST
 CGI脚本解析器:(*.cgi)
可执行文件: C:\Perl\bin\perl.exe "%s" %s
扩展名: .cgi
仅限于: GET,HEAD,POST
2) 默认 Web 站点】->【新建】->【虚拟目录】:
别名:Bugzilla,访问目录:C:\Bugzilla,访问权限中增加【写入】权限。
选择刚建立的虚拟目录Bugzilla,右键选择【属性】-> 【文档】。【默认文档】中增加index.cgi。
4.  修改localconfig,(这个文件在C:\Buzilla\文件夹下)文件中的MySQL参数
找到以下部分
#
# How to access the SQL database:
#
$db_host = "localhost";         # where is the database?
$db_port = 3306;                # which port to use
$db_name = "bugs";              # name of the MySQL database
$db_user = "bugs";              # user to attach to the MySQL database


#
# Enter your database password here. It's normally advisable to specify
# a password for your bugzilla database user.
# If you use apostrophe (') or a backslash (\) in your password, you'll
# need to escape it by preceding it with a \ character. (\') or (\\)
#
$db_pass = 'admin';  #这里修改为上边我们给BUGS数据库设置的密码,上
#边我设置为admin 这里修改为

   如果你在bugzilla路径下没有找到这个文件,那么需要你执行bugzilla文件夹下面的checksetup.pl
  c:\> cd bugzilla
  c:\bugzilla>checksetup.pl

5. 执行checksetup.pl
Checking perl modules ...
Checking for AppConfig (v1.52) ok: found v1.55
Checking for CGI::Carp (any) ok: found v1.13
Checking for Data::Dumper (any) ok: found v2.101
Checking for Date::Parse (any) ok: found v2.27
Checking for DBI (v1.13) ok: found v1.37
Checking for DBD::mysql (v1.2209) ok: found v2.0419
Checking for File::Spec (v0.82) ok: found v0.82
Checking for File::Temp (any) ok: found v0.12
Checking for Template (v2.07) ok: found v2.08
Checking for Text::Wrap (v2001.0131) ok: found v2001.0929
Checking for CGI::Carp (any) ok: found v1.13
The following Perl modules are optional:
Checking for GD (v1.19) ok: found v2.07
Checking for Chart::Base (v0.99) ok: found v2.2
Checking for XML::Parser (any) ok: found v2.34
Checking user setup ...
------------------------------省略
 Looks like we don't have an administrator set up yet. Either this is your
first time using Bugzilla, or your administrator's privs might have accidently
gotten deleted at some point.
Enter the e-mail address of the administrator:pcl@51testing.com//输入login email
You entered 'tonnyomAThotmail.com'. Is this correct? [Y/n] Y
Enter the real name of the administrator:pcl
Enter a password for the administrator account: pcl //输入管理员登陆密码
Please retype the password to verify:
'tonnyomAThotmail.com' is now set up as the administrator account. 省略后边

  现在访问:Http://localhost/bugzilla/index.cgi,发现错误!
 
 解决办法:
1. 修改所有的cgi文件,去掉第一行的最后一个字符T,我统一修改去掉—wT
2. 修改sendmail的问题!下边操作要仔细!
    查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\CGI.pl' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\CGI.pl(229):     Bugzilla::BugMail::MessageToMTA($msg,$login);
原来是  Bugzilla::BugMail::MessageToMTA($msg)
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\globals.pl' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\globals.pl(1397):             Bugzilla::BugMail::MessageToMTA($msg,$name);
原来是  Bugzilla::BugMail::MessageToMTA($msg)
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\importxml.pl' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\importxml.pl(118):   Bugzilla::BugMail::MessageToMTA($sendmessage,$to);
原来是  Bugzilla::BugMail::MessageToMTA($sendmessage)
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\move.pl' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\move.pl(171): Bugzilla::BugMail::MessageToMTA($msg,$to);
原来是Bugzilla::BugMail::MessageToMTA($msg);
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\whineatnews.pl' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\whineatnews.pl(73):     Bugzilla::BugMail::MessageToMTA($msg,$substs{'email'});
原来是Bugzilla::BugMail::MessageToMTA($msg);
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\BugMail.pm' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\BugMail.pm(853):     MessageToMTA($msg,$person);
原来是Bugzilla::BugMail::MessageToMTA($msg);
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Flag.pm' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Flag.pm(623):     Bugzilla::BugMail::MessageToMTA($message,$flag->{'type'}->{'cc_list'});
原来是Bugzilla::BugMail::MessageToMTA($messsage);
已找到 'MessageToMTA(' 1 次。
----------------------------------------
查找 'MessageToMTA(' 于 'C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Token.pm' :
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Token.pm(95):     Bugzilla::BugMail::MessageToMTA($message,$vars->{'emailaddress'});
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Token.pm(104):  Bugzilla::BugMail::MessageToMTA($message,$vars->{'emailaddress'});
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Token.pm(156):    Bugzilla::BugMail::MessageToMTA($message,$vars->{'emailaddress'});
C:\Documents and Settings\benjamin\Desktop\bugzilla218\Bugzilla\Token.pm(232):  Bugzilla::BugMail::MessageToMTA($message,$vars->{'emailaddress'});
原来是Bugzilla::BugMail::MessageToMTA($messsage);
已找到 'MessageToMTA(' 4 次。
搜索完成, 共找到 'MessageToMTA(' 12 次。 (9 个文件中。)

修改完这些,请将Bugmail.pm最后sub MessagesToMTA修改成如下,红色为增加的代码,绿色为屏蔽的原有代码:
sub MessageToMTA ($$) {
   my ($msg,$person) = (@_);
 
    my $sendmailparam = "";
    unless (Param("sendmailnow")) {
       $sendmailparam = "-ODeliveryMode=deferred";
    }
 
    if ($enableSendMail == 1) {
        #open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
        #  die "Can't open sendmail";
 
        #print SENDMAIL trim($msg) . "\n";
        #close SENDMAIL;
       
        use Net::SMTP;
 my $smtp_server = '';
 
 # Use die on error, so that the mail will be in the 'unsent mails' and
 # can be sent from the sanity check page.
 my $smtp = Net::SMTP->new($smtp_server) ||
  die 'Cannot connect to server \'$smtp_server\'';
 
 $smtp->mail('bugzilla-daemon@buzgilla.com');
 $smtp->to($person);
 $smtp->data();
 $smtp->datasend($msg);
 $smtp->dataend();
 $smtp->quit;
 }
}
修改之后可以大功告成了!
最后汉化:修改bugzilla为中文界面
 http://sourceforge.net/projects/bugzilla-cn/下载bugailla-2.18汉化版本,把解压后的cn目录copy到c:\bugzilla\template,然后修改c:\bugzilla\Bugzilla\template.pm文件,在76行增加my $languages = "cn"。在打开浏览器试试,是不是变成中文呢?呵呵

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号