SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8575|回复: 6

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

[复制链接]
发表于 2010-8-30 15:50:29 | 显示全部楼层 |阅读模式
如何在windows  XP下安装基于apache或者IIS的bugzilla
9 Q( M4 q7 R% ^1 F. ?& P
; m9 g/ l8 I4 E一、安装
* x6 P' L0 L- p% r% T2 X& D1、安装前准备( X" {' [& J/ Y1 d) @
⑴mysql-5.0.45-win32.zip
; _1 ]1 L. |6 L3 ?# R⑵mysql-gui-tools-noinstall-5.0-r17-win32.rar
7 S$ U4 H" i5 M8 I⑶ActivePerl-5.8.8.822-MSWin32-x86-280952.zip
2 o% F4 p: a4 R2 f⑷apache_2.2.4-win32-x86-no_ssl.msi1 \8 n  L& L4 A# v+ M" G
⑸bugzilla-2.22.3.tar.gz
4 I; x4 e; K( s/ F3 q⑹bugzilla-2.22.1-cn.tar.gz( a" u# s# Q0 H2 V+ {% k1 _
2、安装
- p# z' y, j9 G2 @; S- J* L(1)安装mysql(mysql-5.0.45),一路默认安装。最终可以启动即可。记住mysql安装时的端口,后来在配置localconfig时会用到。
% L6 c' S7 _- M8 A(2)安装mysql的可视化的管理工具(mysql-gui-tools)。(可省略)
" E8 i0 Z  |! `) sa.如安装mysql-gui-tools的话在可视的管理工具里建一个db数据库及用户名即可。
: C8 G! T* j2 u- Xb.若没有安装,刚在cmd里进入mysql的bin目录。
( ]' U8 V+ d* r/ U( ]+ D- l输入mysql –u dbname –p mysql进入到mysql.0 I! B* h( M* S/ u5 d$ `  W  g) o
会出现如下行9 a) K  n2 W2 h" E! U4 ^
Enter password:********
# v2 j+ V8 S+ z( L8 i9 E5 K9 _Welcome to the MySQL monitor. Commands end with ; or \g.' f+ M4 ]6 ?* d1 W7 _2 |- U
Your MySQL connection id is 15 to server version: 4.0.20a-debug
, V, N) k6 s( y5 Y- ~8 \2 I' X7 }Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.4 q8 a2 R# Y2 m9 k
mysql>9 E( |+ P" h& a
然后在后面输入create datebase bugs    #创建了一个名为bugs的db数据库。
! P/ `: E+ Y$ l, L继续输入:grant all privileges on bugs.* to ‘root@localhost‘  identified by ‘123456‘;
, H7 K4 `! s/ v0 n5 d) J* V: l# 创建一个root用户并设置其密码为123456。2 a# E" N* ~7 f
输入:flush privileges;. E- y& J( ^) K5 T
输入:quit+ r) r5 W/ K  w8 [& J* ?: t
到此关于mysql的安装等已经全部完成,记住上面设置的mysql用户名及密码,以及mysql所用的端口。
( B( w' F) K+ l( i" P注:在输入以上命令时,后面有分号的一定要输入,并且要在英文状态下输入,否则则不能正常运行。% O$ f$ f, B" p0 X. X7 u
(3)ActivePerl-5.8.8.822,在此我的perl安装程序是源码安装,所以将其解压放到d:\ ActivePerl下。0 k6 v$ I- {( e% X
然后在cmd里进入到d:\ActivePerl下,执行Installer.bat,一路yes下来,安装完按回车退出即可。
  n, z5 ^) W/ I(4)安装apache
  p- D8 Z3 ]" e! c默认安装即可,但是要记住安装时所设置的端口。
5 Y0 T- A: Q9 e如果安装完apache出现no services installed.则在cmd里进入apache的bin目录。(如apache装在d盘根目录下,则需要执行cd /d d:\apache,然后执行httpd.exe –k install –n apache2即可。): p+ o% v  @2 ?) [
(5)解压bugzilla-2.22.3.tar.gz到目标位置即可,如d:\bugzilla下。
# `% Q  E6 q3 o2 ~( a" k(6)解压bugzilla-2.22.1-cn.tar.gz,然后将cn文件夹复制到D:\bugzilla\template下。
- W6 U1 Q; R' @(7)安装perl模块,用ppm安装。; T# X+ U% q/ s; g: }
在cmd里进入D:\bugzilla,依次运行以下命令。
9 F0 w+ M: l: _0 {perl checksetup.pl.* P. h; B& _8 q4 r7 [  p
ppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms/( o& a$ U1 \# n/ f" {
然后运行ppm install modulename下载所提示的模块。. G6 r* M/ S; Z' g4 M4 i
下载完所有的模块之后,再次运行checksetup.pl,若在d:\bugzilla下生成了localconfig则继续。若没有生成localconfig则可重装(个人是卸载重装后才生成localconfig文件的)。* J! F5 M2 a' ?3 H# @( {
二、配置. b1 f2 I) V+ v7 K9 l9 r  I+ T
1、配置localconfig文件。- d; a% p7 v# h& p* y9 c
$index_html = 0;改为$index_html = 1;& x. K: y+ {* G$ C/ ~# N" Y
$db_host = 'localhost';   # 修改为本机服务器IP.' V+ K' a8 q0 d. ~7 U
$db_name = 'xiu';            # 修改为上面我们所建mysql数据库的名字。
- Q0 R* B8 W$ f$ \" X$ L' N$db_user = 'xiu';            # 修改为上面所建的用户名。5 D8 w) _6 L6 ]5 |3 ]
$db_port = 3306;             # 修改为安装mysql时所设的端口。5 L$ \: U6 W2 a. k2 u- h
$db_pass = '080624';         # 修改为上面所建用户的密码。
8 \% L# S. s& s% O; ~2 l2 E再次进入d:\bugzilla下执行checksetup.pl,然后按提示输入即可。
6 n7 n9 w& g, ]& ^- k2、将d:\bugzilla下的所有后缀为.cgi的文件中的首行: J/ i4 |% _/ }/ H! V* o
由#!/usr/bin/perl –wT修改为#!D:\Perl\bin\perl.exe  -T
9 |9 S8 n3 A/ Q- I- e8 _# `3、配置/ k$ D- B: W& E% Z! Y% K) @
3.1配置httpd.conf
: w4 N" w/ K% V. f  y* E7 G(1)149行DocumentRoot "D:\Apache2.2\htdocs"0 T' ~$ i7 n* K/ v5 _5 U
改为DocumentRoot "D:\bugzilla"( U4 N1 R0 b4 r5 l8 {6 d
(2)178行<Directory " D:\Apache2.2\htdocs ">) Z, u, o3 W- V5 K, y" i+ a
改为<Directory "D:\bugzilla">3 b) ^5 u2 b! I
并在<Directory "D:\bugzilla">段修改添加
) G4 `& R' C1 s" j; t- ?★         Options Indexes FollowSymLinks; Z5 \! r( e! a6 t" \8 ?' d3 R
改为Options Indexes FollowSymLinks ExecCGI
# ?! b: {# m# [2 |★         AddHandler cgi-script .cgi
! u' r1 U2 p/ w, R8 `: K# G  z$ @★         AllowOverride None改为AllowOverride All,并在其后添加
( B: D: a8 j: @& u$ ?5 dScriptInterpreterSource Registry-Strict
8 x3 x) ^4 d% P7 h9 I3 Z(3)第458行Include conf/extra/httpd-languages.conf前面的#去掉。
" L5 ]/ O) K' F9 p3 b5 I  w3.2配置D:\Apache2.2\conf\extra下的httpd-languages.conf, I$ h* O9 U/ P
将其76行中的zh-CN放到en前面。
* T" u9 _( X1 j# F. P) M到此则可以通过http://ip:port/index.cgi进行访问bugzilla的首页了。( o( R% Q' v( h4 r! o5 U" O) y
4、如果用IIS的话则需要配置IIS
  d( [5 d+ i0 A, S9 S* ?, p, \打开IIS管理器,选中默认网站,然后点击右键,选择新建虚拟目录,然后将bugzilla文件夹放到默认网站里。在bugzilla上点右键进入到bugzilla属性,然后点击配置,出现应用程序配置对话框,点添加:4 i. r7 j: w+ v5 ^0 |# P! X
可执行文件栏填为::D:\Perl\bin\Perl.exe -xd:\bugzilla -wT "%s" %s。7 z- z. T' x$ z; t
扩展名为:.cgi。
; E9 x( A* N, Q8 o4 {限制为填为:GET,HEAD,POST。, @4 E0 X' R) D6 T6 Y  H; d. X& J
5.配置bugzilla的报表不显示乱码。
7 T: ^; @& Y; H# z* i8 L修改 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;
/ V, D: Q+ x8 c& U, P6 `# }  USE graph = GD.Graph.bars(width, height);后添加以下内容$ s$ A% b% S1 Z6 l
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
0 s, i1 {: H9 V$ {( rgraph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);! Z( o, t7 }7 B- P& e
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
) q' t  U* M1 w# }* f9 j1 _2 `graph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
$ M! u, _  Y9 p9 sgraph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);4 O/ a  U  ]7 h
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);- k2 `2 x. b5 d% F! b- E
report-line.png.tmpl文件中第61行即[% FILTER null;后添加以下内容# h( ~  A5 X, b. O+ V" F
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
$ R  x3 E  m; Xgraph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);. |9 n: u0 C3 q8 a$ e
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
; ?1 G5 c# T1 c, m; M& Ggraph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);; F0 C2 |2 \% b+ e
graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);$ b6 e; g  g# o  L) E. z. f$ F
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);! d! H! N& N* s' p$ |; Z

: y; M$ G3 i( sreport-pie.png.tmpl文件中第38行即[% FILTER null;后添加以下内容$ u3 E( H  F* t& u
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);5 H+ c6 o6 o; s8 c7 z3 y. b) J; h4 K
graph.set_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
# |8 f' [. G! Q: egraph.set_value_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);6 N8 u& O2 b2 x! k% Q, V
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);( ]% M% k  F( W2 i
( _6 _( N* F7 s  g( I/ E% d
SURSONG.TTF可以根据实际情况改变,选择一种电脑存在的字体即可。2 C9 d4 V' A* H$ T

% ~# q1 _) \$ k4 Q确定后即可在本机上通过http://localhost/bugzilla/index.cgi访问bugzilla的首页。- X, }8 C: L2 |' w0 P
注:若想在别的机器可以用http://ip/bugzilla/index.cgi访问,则需要将windows防火墙关闭。
. E2 ]5 V( \  C2 Z
* T1 U8 B' U) S[ 本帖最后由 yjh4866 于 2010-9-10 13:15 编辑 ]
 楼主| 发表于 2010-9-3 16:57:59 | 显示全部楼层

不能发送邮件问题

如按以上方法配置,不能发送邮件的话,
: B& f% P4 q8 c0 I" m$ w/ w将bugmail.pm文件中的sub MessageToMTA 段替换为以下内容即可发送邮件,但是我收到的是乱码,有人收到的正常,还忘大家都交流交流。8 v9 ]  T/ ~8 `: D
sub MessageToMTA {6 `; S2 |- Y1 H
     my ($msg) = (@_);
( X* r( K& @: H+ g  l( P0 q     return if (Param('mail_delivery_method') eq "none");9 P  V; F; h- \6 C  m6 l5 h
, |0 D8 Y" B- e5 G4 r7 B
     my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);
7 z' s8 \* X8 d. ~/ ?  ]     my $headers;* K5 l$ e3 O) ]+ O7 {- p

5 J, s" P" }7 Q/ D, i' U! @     if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {
+ i1 l/ a7 A  F3 y7 `, w$ Q9 T) `! ?         ($headers, $body) = encode_message($msg);. S/ i" I" ~$ v
     } else {5 e3 n, D  J" o5 s! P% b! n# g
         my @header_lines = split(/\n/, $header);
* N& R1 G4 {4 ]- ^3 y2 s         $headers = new Mail::Header \@header_lines, Modify => 0;
# b' ~# a# J% A7 x  t; Z5 M     }
& `, [% D6 M3 V1 u/ o# h) Z5 X/ U
+ P* f! p0 r" k6 r1 l8 p( \     # Use trim to remove any whitespace (incl. newlines). m. ?, E2 R+ @0 r
     my $rcpt_to = trim($headers->get('to'));/ ~2 P; m& O2 f& z: j+ r9 W

9 d: w+ k' H% y( V7 @     use Net::SMTP;" V( k( b1 K: g8 \; y
     my $smtp_server = 'mail.huaqi.com';1 @7 O1 F, m5 R" C5 b; [
     my $smtp_user = 'zhaozhixiu@huaqi.com';
- u' h. x6 q2 r8 o" U$ l3 B     my $smtp_pass = 'ZHAOZHIXIU1987';1 y* r7 R# v1 a# J; h/ X! f
: V8 I6 h2 w: h( t5 s: k6 J* X7 d
/ g* [, G6 {+ F* K8 S" V
     my $encode_smtpuser = trim(encode_base64($smtp_user));
3 }, q8 r" ?/ }  P& z     my $encode_smtppass = trim(encode_base64($smtp_pass));
3 }5 A; G, v0 r' l6 P: ~0 R  Y" k9 |6 p0 S
     my $smtp = Net::SMTP->new($smtp_server,Timeout => 60) ||' E% @& G4 v& T* F6 a5 b
     die 'Cannot connect to smtp server';7 z4 p5 O9 f- V- H3 n+ D3 o

9 l( d6 ^% R  h; b' Z     my $result = $smtp->command('AUTH','LOGIN');0 q" H4 p# w; @$ m6 s% \
     my $answer = $smtp->getline();
+ H9 b0 V- S: g- s: Z. I% b* W0 E     # 334 VXNlcm5hbWU6
5 V; e" _# Q! C! c/ ]
2 _! H) |. P& e7 N7 K7 L" D7 H( G     $result = $smtp->command($encode_smtpuser);
  Q/ H9 B8 d! [. I& a     $answer = $smtp->getline();
; |6 D" w/ L5 c8 N$ D     # 334 UGFzc3dvcmQ6
4 W0 _0 X3 [/ }2 Z+ g* d# `  
# K5 R/ D& z8 T2 L4 F     $result = $smtp->command($encode_smtppass);0 @; ^' A9 V, h& _; T$ _# A2 p) U& ^
     $answer = $smtp->getline();
" o- l/ }( H1 _2 M7 V9 i7 i     # 235 Authentication successful
! m# B' Q* Q  g     # or 535 Authentication failed
! h8 A1 j, V2 W, \4 m: U' F. T     if ($answer =~ /535/i)0 H5 X0 g' P- G2 h) W. `
     {print "Sorry,Authentication failed!n";exit;}  J7 l( n& s9 D6 F
( L, y9 ?) O( p3 u
     $smtp->mail($smtp_user);
* A5 Q; Y- e- F     $smtp->to($rcpt_to);8 ?# p- h0 y' u! j( x
     $smtp->data();# p- Q  ]* S3 |5 R
     $smtp->datasend($msg);
. u; M* J4 a$ g1 L     $smtp->dataend();- U, t2 c: ^+ T
     $smtp->quit;3 P5 e+ H3 M+ Z6 b" A2 M6 u
}
回复 支持 反对

使用道具 举报

发表于 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的不兼容。所以导致不能发邮件,报表不能显示,而且加了二楼那一段收到的邮件也是乱码。
7 \3 }7 d( |5 O, \& f, R2 m$ `2 I! y: A
解决办法:新旧不兼容,旧的下载不全,彻底换新版本,换版本3.2.2,. Y4 p/ j6 C. D+ Y, j+ \) }
用ppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms连接到# e: ]: L1 l4 J
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-4-25 01:22 , Processed in 0.069558 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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