在windows 上安装bugzilla
一、安装Mysql
1、下载Mysql(http://www.mysql.com/),我下载的是mysql-4.0.15-win.zip,直接安装即可。同时可以下载安装MySQL Administrator 1.0,这是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.18rc3,下载下来后解压到e:\Bugzilla
三、安装Perl (这一节可以参考bugzilla的文档)
1、下载ActivePerl(http://www.activestate.com/),我下载的是ActivePerl-5.8.4.810-MSWin32-x86.msi,安装到e:\Perl(安装路径可自定,以下同)
在e:\bugzilla目录下执行
e:\bugzilla>perl checksetup.pl
此脚本会检查需要的模块是否已经安装,同时初始化数据库,最后要求输入管理员的邮件地址、用户名和密码。第一次会说连不到数据库,找到e:\Bugzilla\localconfig文件,打开找到$db_pass = '';这一行,在引号中填入前面一步中给bugs用户分配的密码,保存。
仔细看返回的提示信息,看看哪些模块还没有安装。然后,安装必须的模块,先执行
c:\>ppm repository add oi http://openinteract.sourceforge.net/ppmpackages
然后用以下命令安装:
c:\>ppm install <模块名>
如果你要安装可选的模块:
执行以下命令添加下载模块的地址
C:\>ppm rep add glob http://glob.com.au/ppm
然后用以下命令安装:
c:\>ppm install <模块名>
每个模块安装成功后会显示类似下面一行的信息:
Successfully installed AppConfig version 1.52 in ActivePerl 5.8.4.810.
四、配置IIS
1、打开控制面板->管理工具->Internet Information Services, 再Default Web Site右键选择Properties-> Home Dictory-> Configuration,在App Mappings中可以看到扩展名为.pl和.plx的文件已经添加到了这里面,双击.pl这一行,打开其属性对话框,在“动作”中选“全部动作”,同样修改.plx这一行;然后再添加一行,参数如下:
可执行文件: D:\Perl\bin\perl.exe -T "%s" %s
扩展名: .cgi
动作: 全部动作
注意:这个“-T”一定要加,否则访问时会报错:Too late for "-T" option at e:\bugzilla-2.18rc3\index.cgi line 1.(网上很多文章都没有提到这个,害我找了半天)
2、在Default Web Site右键选择“新建-》虚拟目录”,你可以给这个虚假目录起一个名字,例如“bugzill”,指向e:\Bugzilla目录,在默认页中加入“index.cgi”。
3、打开浏览器,在地址栏输入:http://localhost/bugzilla,看到bugzilla的页面就表示安装成功,现在可以正常使用了。
五、邮件发送配置
由于bugzilla默认使用的是sendmail来发送邮件的,在windows上要想能发送邮件还要修改几个地方。
1、打开e:\bugzilla-2.18rc3\目录下的CGI.pl、\Bugzilla\BugMail.pm和\Bugzilla\Token.pm文件,找到如下内容(可能略有不同):
open SENDMAIL, "|/usr/lib/sendmail -t -i";
print SENDMAIL $msg;
close SENDMAIL;
换成
use Net::SMTP;
my $smtp_server = 'smtp.163.com'; # 这里换成你自己使用的邮件服务器地址
# 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->auth('youname@163.com', 'password') or die "auth error\n"; # 这里换成你自己使用的邮件服务器上的用户名和密码
$smtp->mail('younam@163.com'); # 这里换成你自己使用的邮件地址
$smtp->to($login); #注意这里,每个文件中的login参数名称是不一样的
$smtp->data();
$smtp->datasend($msg); #注意这里,每个文件中的msg参数名称是不一样的
$smtp->dataend();
$smtp->quit;
2、安装perl的 Net::SMTP 模块
在DOS窗口中,执行以下命令添加下载模块的地址
C:\>ppm rep add glob http://glob.com.au/ppm
然后用以下命令安装:
c:\>ppm install Net::SMTP
会提示说找到了多个模块(有3个),并列出这些模块的名称
3、根据上一步中列出的模块名称,再次用ppm install<模块名> ,把列出的这三个模块全部安装上。
4、把下面的内容保存到c:\test.pl文件中,
#test.pl
#!/usr/local/bin/perl -w
use Net::SMTP;
$smtp = Net::SMTP->new('smtp.163.com'); # 这里换成你自己使用的邮件服务器地址
$smtp->auth('yourname@163.com', 'password') or die "auth error\n"; # 这里换成你自己使用的邮件服务器上的用户名和密码
$smtp->mail('yourname@163.com'); # 这里换成你自己使用的邮件地址
$smtp->to('yourname@163.com'); #这里是接收地址
$smtp->data();
$smtp->datasend("To: yourname@163.com\n");
$smtp->datasend("\n");
$smtp->datasend("中文内容一\nsecond line\n第三行third line");
$smtp->dataend();
$smtp->quit;
然后运行 c:\>perl test.pl
5、到你的邮箱中看看是不是收到了一封新邮件?收到了就表示邮件可以正常工作了。如果没有收到,检查2、3、4步。
六、汉化
1、把e:\bugzilla-2.18rc3\template\en 在原目录下复制一份,目录为e:\bugzilla-2.18rc3\template\cn。
到http://www.sourceforge.net,找到bugzilla-cn,目前版本只有2.17.99,不过一样可以使用(有部分页面会和2.18不一样),文件名是:bugzilla-2.17-cn-0.99-withCSS.tar.gz。下载下来后解开到e:\bugzilla-2.18rc3\template目录下,覆盖cn目录下的文件。
2、打开浏览器,在地址栏输入:http://localhost/bugzilla,点击页面下方的“Parameters”链接,修改其中的“languages”和“defaultlanguage”的属性值为“cn”,提交页面,就可以看到中文页面了,如果没有看到中文,刷新一下就应该可以了。
参考:
http://www.kuihua.net/bbs/dispbbs.asp?boardid=1&rootid=1035&id=1035&star=1&skin=
http://blog.csdn.net/ycw/archive/2004/02/07/4187.aspx
http://blog.csdn.net/s00n/archive/2004/09/20/111065.aspx