SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 9418|回复: 6

[原创] 如何在windows XP下安装基于apache或者IIS的bugzilla

[复制链接]
发表于 2010-8-30 15:50:29 | 显示全部楼层 |阅读模式
如何在windows  XP下安装基于apache或者IIS的bugzilla* x6 Y1 X* O. V! r$ P
* a. T0 B! O( z- Q- E, X' Y
一、安装& O6 V9 n1 n' h( W, N* ~, r
1、安装前准备
+ L! k' E  b( Z9 }% ?5 @- R. F⑴mysql-5.0.45-win32.zip4 ~4 u/ ]3 s( ^* F3 e
⑵mysql-gui-tools-noinstall-5.0-r17-win32.rar) f% m5 T; B4 k9 \) `: X
⑶ActivePerl-5.8.8.822-MSWin32-x86-280952.zip3 p- `: i" ^6 Z) O: E& y3 c# z
⑷apache_2.2.4-win32-x86-no_ssl.msi
0 m( @8 {' Z6 ?1 M⑸bugzilla-2.22.3.tar.gz
1 z4 _- v: C  k3 t" F2 A⑹bugzilla-2.22.1-cn.tar.gz6 J# F. E+ k7 J1 {8 ?& N% z
2、安装
1 w# ^5 M9 p2 z# a3 }0 K. m# j(1)安装mysql(mysql-5.0.45),一路默认安装。最终可以启动即可。记住mysql安装时的端口,后来在配置localconfig时会用到。6 b7 i+ y/ v/ R3 A& Z5 ^: @( s; x
(2)安装mysql的可视化的管理工具(mysql-gui-tools)。(可省略)( w! S* A8 B3 m0 m  H
a.如安装mysql-gui-tools的话在可视的管理工具里建一个db数据库及用户名即可。
6 D  r$ ]" b1 A6 p1 s& K, gb.若没有安装,刚在cmd里进入mysql的bin目录。
- G8 k8 Y2 k; ?& _7 y输入mysql –u dbname –p mysql进入到mysql.
5 G: H. n* o& y. W' L$ r3 ?会出现如下行2 d1 |/ s4 ?7 v: L
Enter password:********
$ j4 ^6 O1 Q# m- l; `: _$ NWelcome to the MySQL monitor. Commands end with ; or \g.
3 J/ ~  Q5 [  B  w- e- aYour MySQL connection id is 15 to server version: 4.0.20a-debug
4 c* w" G1 f6 T6 uType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
/ z8 @9 [8 B' B( P  Z* ?mysql>" w  X' [- l; f# R2 R- L# [' m- E
然后在后面输入create datebase bugs    #创建了一个名为bugs的db数据库。# w8 y4 M8 t: g& W# O# d* m
继续输入:grant all privileges on bugs.* to ‘root@localhost‘  identified by ‘123456‘; 9 i1 _: n8 }, B( H
# 创建一个root用户并设置其密码为123456。: \0 Y! K0 e8 f4 e) Q5 d
输入:flush privileges;3 \/ E; n: g) H: @7 P: f1 ]; G
输入:quit5 C8 p, X& L; P$ F* @1 Z; j
到此关于mysql的安装等已经全部完成,记住上面设置的mysql用户名及密码,以及mysql所用的端口。
3 [& z8 c5 }& N0 y" v注:在输入以上命令时,后面有分号的一定要输入,并且要在英文状态下输入,否则则不能正常运行。$ u- R$ X9 n6 Q3 o1 _
(3)ActivePerl-5.8.8.822,在此我的perl安装程序是源码安装,所以将其解压放到d:\ ActivePerl下。
. u+ g7 a2 d2 M' S9 d4 G: c然后在cmd里进入到d:\ActivePerl下,执行Installer.bat,一路yes下来,安装完按回车退出即可。7 @" T$ b# c# H( B! ]' `- q8 y
(4)安装apache) J% {. N! ]' \5 X
默认安装即可,但是要记住安装时所设置的端口。
& [* k: c5 \; `: O. F1 q! A" e如果安装完apache出现no services installed.则在cmd里进入apache的bin目录。(如apache装在d盘根目录下,则需要执行cd /d d:\apache,然后执行httpd.exe –k install –n apache2即可。)7 \1 T* v* \' `% @* d
(5)解压bugzilla-2.22.3.tar.gz到目标位置即可,如d:\bugzilla下。6 ~$ y* l! f6 e% u, \2 q, r
(6)解压bugzilla-2.22.1-cn.tar.gz,然后将cn文件夹复制到D:\bugzilla\template下。4 ^* V* H7 F$ s
(7)安装perl模块,用ppm安装。, Z- }% @. }, e6 s
在cmd里进入D:\bugzilla,依次运行以下命令。6 F3 p/ e! m' m' T
perl checksetup.pl.
$ N' c+ C+ ^0 vppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms/0 y  O1 q+ l5 {: t
然后运行ppm install modulename下载所提示的模块。  h8 f8 S# M" E# e
下载完所有的模块之后,再次运行checksetup.pl,若在d:\bugzilla下生成了localconfig则继续。若没有生成localconfig则可重装(个人是卸载重装后才生成localconfig文件的)。' w, C$ P3 ?/ [
二、配置# u" E0 S" h, _1 N3 i" l! s1 j2 \
1、配置localconfig文件。6 V  v: \# |" m) l3 J
$index_html = 0;改为$index_html = 1;
- s+ L5 v) n* ]( m" j7 F% w! l$ s3 h  N$db_host = 'localhost';   # 修改为本机服务器IP.
6 w, ~/ M, c2 P  ~4 Q/ `/ ^$db_name = 'xiu';            # 修改为上面我们所建mysql数据库的名字。; x6 W3 v6 p2 [# V& z: s# y' l
$db_user = 'xiu';            # 修改为上面所建的用户名。- o2 n+ l4 S1 P4 V
$db_port = 3306;             # 修改为安装mysql时所设的端口。
5 _; c/ q3 o# h$ z5 O& S& H0 T9 }$db_pass = '080624';         # 修改为上面所建用户的密码。4 X* R6 ^9 d$ k, f9 X8 i
再次进入d:\bugzilla下执行checksetup.pl,然后按提示输入即可。
* G/ t+ c$ X4 I" L" s2、将d:\bugzilla下的所有后缀为.cgi的文件中的首行; W) r- ?$ |( k/ x: ]5 ?! ^
由#!/usr/bin/perl –wT修改为#!D:\Perl\bin\perl.exe  -T
0 q- M# L8 b2 A% |: {" {; W3、配置' c9 `: @) H! R1 T1 v
3.1配置httpd.conf
7 Q- t  ]+ Z8 Q' E0 Y# o& e# o1 f(1)149行DocumentRoot "D:\Apache2.2\htdocs"8 b% q: ?$ }% Q3 |& \6 `  U/ {
改为DocumentRoot "D:\bugzilla"
6 n# T# u3 y5 Q5 G  P/ A) C3 _$ A0 c(2)178行<Directory " D:\Apache2.2\htdocs ">
6 r  m) i  F) |: k6 b改为<Directory "D:\bugzilla">
& w* e6 \% C& v" q# s1 ?% N并在<Directory "D:\bugzilla">段修改添加8 C) J' E5 g; S; ]3 L; Q
★         Options Indexes FollowSymLinks+ W% x1 N# V& k4 }/ T& G3 G, j
改为Options Indexes FollowSymLinks ExecCGI- z" ], U  j* c' f, x- t  j, \7 }
★         AddHandler cgi-script .cgi
7 W! J9 D0 l, K$ J6 s6 R5 J★         AllowOverride None改为AllowOverride All,并在其后添加2 T7 [* j4 }/ `' L
ScriptInterpreterSource Registry-Strict$ D( ?& I" p4 Z9 z" E
(3)第458行Include conf/extra/httpd-languages.conf前面的#去掉。
' i/ e+ e  i( H$ a8 C4 m3.2配置D:\Apache2.2\conf\extra下的httpd-languages.conf
# t6 _# U' v/ A. f将其76行中的zh-CN放到en前面。
! h8 \9 R. _1 J7 I1 e到此则可以通过http://ip:port/index.cgi进行访问bugzilla的首页了。/ o, U0 Q0 d6 A# H+ a& S+ u
4、如果用IIS的话则需要配置IIS; I' W+ s  X- _3 }) I6 E' c
打开IIS管理器,选中默认网站,然后点击右键,选择新建虚拟目录,然后将bugzilla文件夹放到默认网站里。在bugzilla上点右键进入到bugzilla属性,然后点击配置,出现应用程序配置对话框,点添加:
  Y& V& C9 W* {% J可执行文件栏填为::D:\Perl\bin\Perl.exe -xd:\bugzilla -wT "%s" %s。
" w% C2 K; G2 L) a扩展名为:.cgi。& l4 Y' P& n5 V% @0 _: A. C% p$ h; p
限制为填为:GET,HEAD,POST。
* U- u) `5 }3 e% j& b# `5.配置bugzilla的报表不显示乱码。
& j' a# R$ \3 R, q3 {5 G修改 D:\bugzilla\template\zh-cn\default\reports下的report-bar.png.tmpl,report-line.png.tmpl,report-pie.png.tmpl三个文件,report-bar.png.tmpl文件中第56行即[% FILTER null;# S3 k8 y! p& N8 L1 [% X# ~
  USE graph = GD.Graph.bars(width, height);后添加以下内容# q3 U: R% ~: h6 a& l) ~8 c
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);4 {0 f5 [' t* M
graph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);7 ^* S# A* x# Q' L/ w" L
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
8 f3 e, d% |$ W' V8 J7 G  Jgraph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);) [4 _% {+ E# \+ V
graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
4 F+ a" u$ q1 h: j  Q  K* j; V7 p  Y# rgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);9 l8 S! P5 s4 ^" Z
report-line.png.tmpl文件中第61行即[% FILTER null;后添加以下内容
4 B2 g. i1 q: R9 G) R! b( ?2 |graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);, c: K  F! r5 ^3 |  x& R
graph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);; K: ?  t$ u" d" X+ e
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);0 Q2 n, B3 U' @6 c/ q
graph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
4 N$ U* S2 o# \5 B) ~" ~graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);# f# g. A  j, A8 G
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
# C( d; D" o7 D0 F; u6 g2 w$ J% p% F' P1 |0 G; l; c- B# M
report-pie.png.tmpl文件中第38行即[% FILTER null;后添加以下内容
3 g* `) M4 {# ^3 X# Z8 ugraph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);' S9 U) }! [% v4 u) n1 D3 a; h, r/ Z0 `# |
graph.set_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);6 Y* q% D8 n5 B& i5 L
graph.set_value_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
+ ]: e/ G  y" `! S3 i" Rgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);& w, `" f8 _6 j$ c" p5 j8 j

/ y2 B* s: v" |" z5 ]0 OSURSONG.TTF可以根据实际情况改变,选择一种电脑存在的字体即可。
& ~% @0 o/ @5 U! W2 d& v2 d$ r7 q0 ^9 _+ b& h
确定后即可在本机上通过http://localhost/bugzilla/index.cgi访问bugzilla的首页。# q! x# E# t  ]2 y# g# w2 L2 u8 V
注:若想在别的机器可以用http://ip/bugzilla/index.cgi访问,则需要将windows防火墙关闭。
1 }3 \: E- X$ `! \& u
4 k) K  A0 L  v- G( `+ `[ 本帖最后由 yjh4866 于 2010-9-10 13:15 编辑 ]
 楼主| 发表于 2010-9-3 16:57:59 | 显示全部楼层

不能发送邮件问题

如按以上方法配置,不能发送邮件的话,
. g1 b: f/ n  q/ d将bugmail.pm文件中的sub MessageToMTA 段替换为以下内容即可发送邮件,但是我收到的是乱码,有人收到的正常,还忘大家都交流交流。
! t: Q/ U0 q1 z) Z0 d& x) G( fsub MessageToMTA {
. V, p1 {+ o' Q7 O     my ($msg) = (@_);
: N4 `; i: q" c" z4 ?% `- n3 U     return if (Param('mail_delivery_method') eq "none");
$ V3 _( j" ~. y4 x, n3 `1 a2 Z. ?% f7 w
     my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);! v9 j+ c; E2 i* A
     my $headers;  f& U/ `. r( U) @# M
9 _% Z: K9 j/ A# O: ~
     if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {
4 H3 y: E6 |$ Q! n# ~" S         ($headers, $body) = encode_message($msg);
( R7 I3 X& F3 Q+ _! {& l9 _     } else {
* R2 |% M* V/ z" P3 d1 Q         my @header_lines = split(/\n/, $header);
( l$ s6 r9 _3 L+ Y6 j8 r$ Y         $headers = new Mail::Header \@header_lines, Modify => 0;
" X0 a8 U8 z) s8 h     }" v% d4 L# J3 W/ Q7 O' C& g
1 t6 n$ u2 q: A
     # Use trim to remove any whitespace (incl. newlines)3 q1 M* ?. v* E# G
     my $rcpt_to = trim($headers->get('to'));
9 l2 u1 G$ h) U7 L0 _5 S* L- A1 U" J
     use Net::SMTP;8 ?3 q+ C* I4 N
     my $smtp_server = 'mail.huaqi.com';
. ~6 W; V: f  }. _     my $smtp_user = 'zhaozhixiu@huaqi.com';
' e# M6 t9 s" ~1 [: f( l( M  T     my $smtp_pass = 'ZHAOZHIXIU1987';
( m7 S: `% W& m$ x% b' `$ A
) ]- d  @. m/ x% g- Z& y2 H, Q
' M" i! G# X) W% y0 c# a9 g     my $encode_smtpuser = trim(encode_base64($smtp_user));
4 r6 t: w, |4 p4 Z- \; o  y: H5 V' |     my $encode_smtppass = trim(encode_base64($smtp_pass));9 z$ u# l4 a" ]. q5 z& F$ q

2 a% `4 T; u! L     my $smtp = Net::SMTP->new($smtp_server,Timeout => 60) ||
% D, l. z/ }/ w. `0 m     die 'Cannot connect to smtp server';3 f# \0 T+ C$ J* S6 x" Q" I
& O5 R6 v; p! ~+ s* Y! [" T, p" s
     my $result = $smtp->command('AUTH','LOGIN');2 a! K5 O7 P2 A# R- U
     my $answer = $smtp->getline();
* z8 t8 Y8 P7 d     # 334 VXNlcm5hbWU69 y0 x7 _% L  ~! Z' w. C6 t

( E7 ~* a6 ~" Y/ _- M1 L1 j     $result = $smtp->command($encode_smtpuser);
, f' B' X$ A. G7 `2 D6 N5 o# t     $answer = $smtp->getline();. z! u1 \8 h# u+ H5 F
     # 334 UGFzc3dvcmQ6
$ x& G% O  i* j1 w4 Z! ~; }  
& ~- X2 \$ }. L+ H2 H     $result = $smtp->command($encode_smtppass);
# G( V# m: T4 y. w( R5 i% S     $answer = $smtp->getline();
. D3 ^5 X' g( q6 F5 x" U     # 235 Authentication successful / i) T8 b8 G: p
     # or 535 Authentication failed
& e' j; ?& l! m! c     if ($answer =~ /535/i). g( `8 C, j" O7 U) ?
     {print "Sorry,Authentication failed!n";exit;}
+ R& J7 g  U: b- o7 R- R. M& H, v* P1 u9 G% {+ |
     $smtp->mail($smtp_user);
3 t: o7 m3 k+ ~  }' w     $smtp->to($rcpt_to);
; u; Z5 k. k; ~( a     $smtp->data();8 H& `2 k4 V% ~* M0 Z4 M+ k) b
     $smtp->datasend($msg);- W  \* c8 V! ?* Q) U+ H
     $smtp->dataend();
4 e$ Z+ e0 ?/ W- k3 P+ K     $smtp->quit;
: T# _7 T2 [* b# H}
回复 支持 反对

使用道具 举报

发表于 2010-9-9 09:42:25 | 显示全部楼层
谢谢共享,学习了.我们现在用的是Bugfree.总感觉不是很好用.正想用Bugzilla来代替,先保存下来研究一下.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-9 11:54:10 | 显示全部楼层

回复 板凳 的帖子

这个版本已经旧了,我换新版本了,资料会在最近更新上来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-10 11:30:51 | 显示全部楼层

邮件乱码问题

此文档我用的是bugzilla2.22.3,因为版本比较旧,模块是用ppm连接到http://landfill.bugzilla.org/ppm下载,但是这样下载有很多模块下载不全,而连接http://theoryx5.uwinnipeg.ca/ppms下载到的模块又与bugzilla2.22.3的不兼容。所以导致不能发邮件,报表不能显示,而且加了二楼那一段收到的邮件也是乱码。
+ O! p+ I7 C" \2 r! I- e0 A  H. q( ~: n/ v8 X
解决办法:新旧不兼容,旧的下载不全,彻底换新版本,换版本3.2.2,
5 g% Z8 v* `( ~4 o' A  x& j用ppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms连接到# S0 p/ W  V$ V9 j5 l( T
http://theoryx5.uwinnipeg.ca/ppms用ppm install modulename下载模块。然后设置应该设置的即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-10 12:08:16 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2012-9-6 18:42:12 | 显示全部楼层
安装这么复杂,真是高手啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /5 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2020-7-13 18:59 , Processed in 0.099499 second(s), 7 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表