SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8458|回复: 6

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

[复制链接]
发表于 2010-8-30 15:50:29 | 显示全部楼层 |阅读模式
如何在windows  XP下安装基于apache或者IIS的bugzilla
1 j- m6 o3 E  a, _( n% v" K6 N# g' l
一、安装! E' O: v: d( I6 r) j2 I6 e
1、安装前准备
. |0 F7 p+ t0 Q9 j$ [# Z- t  a⑴mysql-5.0.45-win32.zip
; h( ^1 |6 l6 A- n% k# T; `0 y# f( v⑵mysql-gui-tools-noinstall-5.0-r17-win32.rar' Q3 O& C/ n) m5 e- m& [% W
⑶ActivePerl-5.8.8.822-MSWin32-x86-280952.zip
, c* R: y$ E% g# e2 |⑷apache_2.2.4-win32-x86-no_ssl.msi
" f9 E) g- S9 ^& f2 I⑸bugzilla-2.22.3.tar.gz
0 G: ~5 r6 {0 B0 y" X) D0 P⑹bugzilla-2.22.1-cn.tar.gz
2 }) j0 {1 \3 N- e7 _5 \# ^$ F2、安装
& w7 P: ~- Z% |: [& \9 H1 g) Q" S(1)安装mysql(mysql-5.0.45),一路默认安装。最终可以启动即可。记住mysql安装时的端口,后来在配置localconfig时会用到。7 ~6 X& n3 s1 O, g
(2)安装mysql的可视化的管理工具(mysql-gui-tools)。(可省略)! N# k3 U' \& E0 l
a.如安装mysql-gui-tools的话在可视的管理工具里建一个db数据库及用户名即可。
7 L9 z9 D# c0 K& G% ]b.若没有安装,刚在cmd里进入mysql的bin目录。
2 Y" s3 \, v/ E3 s输入mysql –u dbname –p mysql进入到mysql.% M# S5 G% [/ [9 S* R, u; z( g: C
会出现如下行; d  \; p  ?# j' m2 ]2 }/ F
Enter password:********" T0 n5 d# I3 ]
Welcome to the MySQL monitor. Commands end with ; or \g.
# Z" ^" E0 ]* d% e! ~; WYour MySQL connection id is 15 to server version: 4.0.20a-debug+ M. i# N4 J6 q" s2 g
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.9 x0 C) q5 f+ s" W& `$ M+ {
mysql>; w* @* `6 |( n6 j! V9 S* B) T, C
然后在后面输入create datebase bugs    #创建了一个名为bugs的db数据库。: p0 d' t% I2 U! _: S# Y3 U
继续输入:grant all privileges on bugs.* to ‘root@localhost‘  identified by ‘123456‘; 7 ^$ |# f$ y' g' ?$ u' X3 p: y
# 创建一个root用户并设置其密码为123456。; {: r' Z. k4 f, u" H% D
输入:flush privileges;3 Q& _) T$ \* ]  D0 Q
输入:quit
6 A; F+ g3 e3 M6 b: J: ]! f# `. m到此关于mysql的安装等已经全部完成,记住上面设置的mysql用户名及密码,以及mysql所用的端口。
' y" T# H) U# q7 S+ [& h8 K注:在输入以上命令时,后面有分号的一定要输入,并且要在英文状态下输入,否则则不能正常运行。
: W5 M# U9 A, z3 s(3)ActivePerl-5.8.8.822,在此我的perl安装程序是源码安装,所以将其解压放到d:\ ActivePerl下。* }8 T3 i' ^* z! m  i7 ?& E* m3 E' L
然后在cmd里进入到d:\ActivePerl下,执行Installer.bat,一路yes下来,安装完按回车退出即可。
5 n: J% o  F0 t- o8 L' J" X(4)安装apache
5 g2 J! C* p6 x* v默认安装即可,但是要记住安装时所设置的端口。7 q' o* w5 O  ^# b- A$ S- D4 W
如果安装完apache出现no services installed.则在cmd里进入apache的bin目录。(如apache装在d盘根目录下,则需要执行cd /d d:\apache,然后执行httpd.exe –k install –n apache2即可。)
5 P. q" E: P* b, q  L6 Y(5)解压bugzilla-2.22.3.tar.gz到目标位置即可,如d:\bugzilla下。
3 L6 t3 \. I% ^& m1 s(6)解压bugzilla-2.22.1-cn.tar.gz,然后将cn文件夹复制到D:\bugzilla\template下。1 H  L$ q: F: w: x6 @
(7)安装perl模块,用ppm安装。
/ y( T% f- I: i+ E! M5 _4 B2 L在cmd里进入D:\bugzilla,依次运行以下命令。6 r6 H+ q8 }- b8 H$ _
perl checksetup.pl.
8 C9 s+ Z) \, E% R% qppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms// L3 ~/ W1 P4 r2 X
然后运行ppm install modulename下载所提示的模块。
, Z4 |9 f9 F$ j1 s) c7 B7 U: h6 F下载完所有的模块之后,再次运行checksetup.pl,若在d:\bugzilla下生成了localconfig则继续。若没有生成localconfig则可重装(个人是卸载重装后才生成localconfig文件的)。* y8 m! h) d: J' O: x
二、配置
% j" Z9 [5 p, H& v1、配置localconfig文件。; H/ x1 u( B4 ?1 C  T3 i& s, F
$index_html = 0;改为$index_html = 1;
1 ^9 x, ~8 y, t5 z7 ~$db_host = 'localhost';   # 修改为本机服务器IP.2 O& @: S$ l# A( J$ b2 P" U; x
$db_name = 'xiu';            # 修改为上面我们所建mysql数据库的名字。$ l6 y" p4 k6 M4 a" {! p! U0 O. V5 m
$db_user = 'xiu';            # 修改为上面所建的用户名。5 I/ Z* Y, s  |: G5 y
$db_port = 3306;             # 修改为安装mysql时所设的端口。
. U% k3 m5 _& J5 e& \, k% A8 V$db_pass = '080624';         # 修改为上面所建用户的密码。
" W4 @$ y( u  w3 T7 n3 J  }再次进入d:\bugzilla下执行checksetup.pl,然后按提示输入即可。
- \* y, o9 Z$ P% D* B0 }2、将d:\bugzilla下的所有后缀为.cgi的文件中的首行6 ?8 Q# Y8 X4 W% {* N
由#!/usr/bin/perl –wT修改为#!D:\Perl\bin\perl.exe  -T- J  e. H( _5 K* X" Z
3、配置" l$ F/ J$ k7 f+ {, W* q
3.1配置httpd.conf
5 W; I/ F- x0 X, Y+ o1 ~(1)149行DocumentRoot "D:\Apache2.2\htdocs"4 v( [) ^9 E+ T9 _+ A4 c9 N" l
改为DocumentRoot "D:\bugzilla"6 D& ^9 _% ~7 G  W
(2)178行<Directory " D:\Apache2.2\htdocs ">! R0 @; V; A2 K- p
改为<Directory "D:\bugzilla">7 L; r! E/ F4 D* L1 P$ |% q% f
并在<Directory "D:\bugzilla">段修改添加
0 T. X2 x1 b8 \' i) N. r★         Options Indexes FollowSymLinks: i! z, Z9 G4 F6 M+ }) w
改为Options Indexes FollowSymLinks ExecCGI6 i  s) Q5 y: a
★         AddHandler cgi-script .cgi  I  B7 D. ^% S  m7 O# N
★         AllowOverride None改为AllowOverride All,并在其后添加- R# H: \: B' L4 u, o
ScriptInterpreterSource Registry-Strict5 t: s- u7 G% ~: O) a7 ^
(3)第458行Include conf/extra/httpd-languages.conf前面的#去掉。
' o8 D) u  t/ Q1 n- k3.2配置D:\Apache2.2\conf\extra下的httpd-languages.conf
+ i* ^% l+ n0 p3 p3 |将其76行中的zh-CN放到en前面。
3 \1 a. F1 U. J$ z1 f5 _2 v. a到此则可以通过http://ip:port/index.cgi进行访问bugzilla的首页了。/ p$ P& [# @" p7 p8 M5 y4 f8 ~
4、如果用IIS的话则需要配置IIS
: a" v2 d% F' L: o0 M打开IIS管理器,选中默认网站,然后点击右键,选择新建虚拟目录,然后将bugzilla文件夹放到默认网站里。在bugzilla上点右键进入到bugzilla属性,然后点击配置,出现应用程序配置对话框,点添加:
# C3 W' L, r- `& c( |可执行文件栏填为::D:\Perl\bin\Perl.exe -xd:\bugzilla -wT "%s" %s。
4 S- N7 ]8 e8 Z+ I# E扩展名为:.cgi。; M5 i" ^  T5 W8 C+ }
限制为填为:GET,HEAD,POST。% }8 @) @) ?$ j6 g( F- R/ W
5.配置bugzilla的报表不显示乱码。
9 P. |* `1 P+ M6 h$ G0 I修改 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;
; U6 B5 J/ W  a  USE graph = GD.Graph.bars(width, height);后添加以下内容
3 k$ A: \3 u* Qgraph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
9 P! t* l6 X8 I; Z5 a1 b: T* V% vgraph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
" T8 U  F6 K8 q6 t3 Ograph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
5 A& ]3 P$ `2 [7 ~: B+ i2 Hgraph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);: C( q2 `% p% G0 Z
graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
9 t. M1 h! ]) a8 @) sgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
6 z; m" x0 P) C# H4 Y. sreport-line.png.tmpl文件中第61行即[% FILTER null;后添加以下内容5 X' j' j9 ~+ h
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
! n. a3 h* z( F- l! L% `graph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);9 R: K' b/ E* Q# k
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
' Q7 [2 n, h, G1 ?graph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
4 M* A' C  q5 R, L( R/ V' ]8 H: Zgraph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);* Z. a5 p- u! k( k; L2 d4 Q# i
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
7 p) i$ F% b3 D8 \' y  Q  ]; e* ]' S3 X8 I! E7 V2 Y" X
report-pie.png.tmpl文件中第38行即[% FILTER null;后添加以下内容
% c# z. C" A/ r& q. n% ]! s/ \& [& cgraph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
+ n$ s" H2 ~- mgraph.set_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
: W3 }. i+ c1 E8 B8 Q  M" igraph.set_value_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
0 n4 A6 M8 ?9 A$ z2 E' a6 xgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);% Z7 @$ B- R6 W
2 Q  S; Q9 |$ Q- k0 _5 r
SURSONG.TTF可以根据实际情况改变,选择一种电脑存在的字体即可。- c8 h9 t% y& G

. Q- m) B6 r+ D. m% }/ R, M确定后即可在本机上通过http://localhost/bugzilla/index.cgi访问bugzilla的首页。# w8 u# w+ g' M; U5 q4 f$ V
注:若想在别的机器可以用http://ip/bugzilla/index.cgi访问,则需要将windows防火墙关闭。6 y% _, x/ v/ L: \) o# Z. ~9 o

! h5 D# E1 p6 V! M+ F1 F[ 本帖最后由 yjh4866 于 2010-9-10 13:15 编辑 ]
 楼主| 发表于 2010-9-3 16:57:59 | 显示全部楼层

不能发送邮件问题

如按以上方法配置,不能发送邮件的话,9 ~8 X2 Y8 J' s4 O7 F0 k
将bugmail.pm文件中的sub MessageToMTA 段替换为以下内容即可发送邮件,但是我收到的是乱码,有人收到的正常,还忘大家都交流交流。/ R6 _7 M6 E1 e
sub MessageToMTA {( V  a( O! v1 D; r& f5 L6 A, _
     my ($msg) = (@_);
$ h; a! k. K0 A, v! ?; R     return if (Param('mail_delivery_method') eq "none");3 N1 E( S) d; R
" r. |8 \7 P, m
     my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);
  q4 J5 O# E# ]2 ^     my $headers;
! d" L4 _- n2 S
6 x9 l7 X! S# ]8 z, Q- e# }& ~& y0 }     if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {$ I9 A) G) S# v. C: D3 E
         ($headers, $body) = encode_message($msg);
6 x' B) c" Q3 V6 S2 B# ]     } else {6 [9 W4 c3 j! W, C
         my @header_lines = split(/\n/, $header);2 Z  V; f5 T5 `4 Z
         $headers = new Mail::Header \@header_lines, Modify => 0;
9 L7 ?! j+ Z2 S" m6 j' H9 _& J     }/ J# U2 Z3 e& _% ~

( r/ M) s' i; V/ S- a     # Use trim to remove any whitespace (incl. newlines)
! t5 O  L) u2 `4 {, p, R, r9 A     my $rcpt_to = trim($headers->get('to'));$ e/ X5 z% T0 B- j$ Q2 l% S4 _

$ a& k4 a: ], P5 H     use Net::SMTP;
: K; t, \8 r7 L$ i     my $smtp_server = 'mail.huaqi.com';# i; E2 e" V2 z: j) o
     my $smtp_user = 'zhaozhixiu@huaqi.com';
8 ]( P: J$ a& b/ o+ N0 S( d% k     my $smtp_pass = 'ZHAOZHIXIU1987';  i6 X( A2 {/ f4 R& `

, _2 c1 G; o  F( \- J( f5 f# M: ^0 L/ b/ d7 L- f( r' T
     my $encode_smtpuser = trim(encode_base64($smtp_user));/ @. `3 H0 a) @. L# J
     my $encode_smtppass = trim(encode_base64($smtp_pass));5 Z" h4 c* r# s! B0 {
/ z5 D/ d* |! a
     my $smtp = Net::SMTP->new($smtp_server,Timeout => 60) ||6 u2 }7 S  O' C! N3 o
     die 'Cannot connect to smtp server';6 d# Q3 K" q+ [) l$ k6 G5 G- V# }

  t: A$ C4 F1 s% x3 ]     my $result = $smtp->command('AUTH','LOGIN');. c; O4 C. R+ q" k; j5 y* Q
     my $answer = $smtp->getline();
! o% H+ O' {9 t* L2 T     # 334 VXNlcm5hbWU6
0 F. y3 y$ f2 R5 x3 N; \* I
9 }1 G, w& u4 S$ a: \' t  ?  t# i, @     $result = $smtp->command($encode_smtpuser);
$ S/ O% u4 w* o0 H- g     $answer = $smtp->getline();5 {! G) F" `+ L) o" m9 ?8 p
     # 334 UGFzc3dvcmQ6
2 g/ t$ S. @* d* I) u, V. I4 J  ( n& U  S5 N9 A) D- ~9 _1 a
     $result = $smtp->command($encode_smtppass);1 D& P  b% x# i' O& h
     $answer = $smtp->getline();& |( O: R* M% s# y+ s4 o
     # 235 Authentication successful 8 |1 F3 Y9 i: L
     # or 535 Authentication failed4 Y3 `9 d3 l0 Q# [  u1 F
     if ($answer =~ /535/i)
7 ~. f  V' w  i0 K! Y     {print "Sorry,Authentication failed!n";exit;}* J3 [" K& d& H; o! A! e0 i

) U/ a, G$ k* o8 a     $smtp->mail($smtp_user);- m9 c2 `# W% }; o& F, D
     $smtp->to($rcpt_to);
; W# j4 Q! J1 ?& `; c' T, t8 O     $smtp->data();
3 ~* ~6 @0 Y" \5 S0 y     $smtp->datasend($msg);
, n% Z$ E6 Z7 u     $smtp->dataend();
6 b; |5 Y& v, w8 S     $smtp->quit;4 M/ j4 d  B$ B$ P3 ^
}
回复 支持 反对

使用道具 举报

发表于 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的不兼容。所以导致不能发邮件,报表不能显示,而且加了二楼那一段收到的邮件也是乱码。
0 ~3 r# Q. ^: O- b3 |- k3 |% k2 \2 k" S( x, _9 A
解决办法:新旧不兼容,旧的下载不全,彻底换新版本,换版本3.2.2,' A* M2 f  |/ s/ K. p3 p0 m1 l' H
用ppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms连接到; ^% g- I- V& {  b( \5 X
http://theoryx5.uwinnipeg.ca/ppms用ppm install modulename下载模块。然后设置应该设置的即可。
回复 支持 反对

使用道具 举报

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-1-23 14:52 , Processed in 0.068753 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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