SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8686|回复: 6

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

[复制链接]
发表于 2010-8-30 15:50:29 | 显示全部楼层 |阅读模式
如何在windows  XP下安装基于apache或者IIS的bugzilla
" K' V" k) E1 b" S4 f' o$ a' I, g" R+ `9 \
一、安装
+ c9 D" c5 c( m% P0 w+ F) X7 b1 R1、安装前准备1 |! j0 E8 D% x4 x" k
⑴mysql-5.0.45-win32.zip
5 Y$ U' W' R  o9 v" u⑵mysql-gui-tools-noinstall-5.0-r17-win32.rar' V. L. W2 w/ x9 l8 ?! ?$ y
⑶ActivePerl-5.8.8.822-MSWin32-x86-280952.zip  J. E* j* \9 e: ]
⑷apache_2.2.4-win32-x86-no_ssl.msi
( m1 K5 N. i0 C% a# v% E/ C⑸bugzilla-2.22.3.tar.gz: t8 r& Z% h( u- s
⑹bugzilla-2.22.1-cn.tar.gz
6 U5 Y6 F+ u* ]1 f, z9 ~7 ^1 B2、安装
1 V5 u" \- t5 `7 J% u% a(1)安装mysql(mysql-5.0.45),一路默认安装。最终可以启动即可。记住mysql安装时的端口,后来在配置localconfig时会用到。. _3 f% N, c& ^3 v& T+ o+ {
(2)安装mysql的可视化的管理工具(mysql-gui-tools)。(可省略)4 W) e+ U( `5 Q4 |4 w* J) F; p
a.如安装mysql-gui-tools的话在可视的管理工具里建一个db数据库及用户名即可。% c' t+ p' l5 g
b.若没有安装,刚在cmd里进入mysql的bin目录。
$ c" ~$ K% E+ I输入mysql –u dbname –p mysql进入到mysql.$ x/ n# I, k5 J
会出现如下行
& i& {7 u1 [% R7 ZEnter password:********4 a3 }/ X- ]& A
Welcome to the MySQL monitor. Commands end with ; or \g.
) o: u4 }( O# B5 f2 K' e) ]+ ZYour MySQL connection id is 15 to server version: 4.0.20a-debug
- \, a: r! G# B$ HType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
. R2 w4 i7 d  m! ?- L' M0 G% Vmysql>
9 w& W# K/ O/ f8 v" P- y然后在后面输入create datebase bugs    #创建了一个名为bugs的db数据库。/ r* n, c+ V! B
继续输入:grant all privileges on bugs.* to ‘root@localhost‘  identified by ‘123456‘; & t' h: j6 S2 e# O' z  Q& Q
# 创建一个root用户并设置其密码为123456。5 |, g- b; F: _
输入:flush privileges;6 }$ h, G1 E; `4 [, `) L) X% c! }
输入:quit
' v% k  p- F. A9 l8 W1 f到此关于mysql的安装等已经全部完成,记住上面设置的mysql用户名及密码,以及mysql所用的端口。
+ X+ }4 p) z4 f! e注:在输入以上命令时,后面有分号的一定要输入,并且要在英文状态下输入,否则则不能正常运行。
& H0 S  i: p3 }( S! @(3)ActivePerl-5.8.8.822,在此我的perl安装程序是源码安装,所以将其解压放到d:\ ActivePerl下。
8 N- f7 I" _/ v' Q* d1 T然后在cmd里进入到d:\ActivePerl下,执行Installer.bat,一路yes下来,安装完按回车退出即可。
* k. D" |; H, s1 F. N6 A. s) Q(4)安装apache
% t4 N* b) C; R/ X3 z3 `' p默认安装即可,但是要记住安装时所设置的端口。2 O+ E. p9 Y) }* z/ B: Y# s! E
如果安装完apache出现no services installed.则在cmd里进入apache的bin目录。(如apache装在d盘根目录下,则需要执行cd /d d:\apache,然后执行httpd.exe –k install –n apache2即可。)
5 D% A9 ]* V; u& d(5)解压bugzilla-2.22.3.tar.gz到目标位置即可,如d:\bugzilla下。+ O7 a  [! A. |- O# }4 Q6 s; q
(6)解压bugzilla-2.22.1-cn.tar.gz,然后将cn文件夹复制到D:\bugzilla\template下。6 t' F$ f1 n9 c; D: L$ Q5 m
(7)安装perl模块,用ppm安装。+ ^5 e3 p  j# N; s+ `
在cmd里进入D:\bugzilla,依次运行以下命令。
6 Z& ?5 t. S9 a, H" ?6 V3 q4 yperl checksetup.pl.
. d) e0 m' X6 Oppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms/4 |/ O; `* [- F' q# M
然后运行ppm install modulename下载所提示的模块。- G" k8 |3 s0 Q' z* D
下载完所有的模块之后,再次运行checksetup.pl,若在d:\bugzilla下生成了localconfig则继续。若没有生成localconfig则可重装(个人是卸载重装后才生成localconfig文件的)。
# C( Y" r; ~# S' E4 O& Q) w二、配置
- P* v( v$ z. Q5 Y8 W1、配置localconfig文件。
4 ]  r; h: t1 v. _' v$index_html = 0;改为$index_html = 1;
9 {" ^2 s# h: w4 Y$ p/ L$db_host = 'localhost';   # 修改为本机服务器IP.
. V$ R, Y1 l, W; R" u0 D" C$db_name = 'xiu';            # 修改为上面我们所建mysql数据库的名字。
: X5 u# ]6 G/ q5 C+ z# f# [$db_user = 'xiu';            # 修改为上面所建的用户名。
" w, D+ \4 N5 e; i% [$db_port = 3306;             # 修改为安装mysql时所设的端口。# x2 y- a: ?6 {& [
$db_pass = '080624';         # 修改为上面所建用户的密码。. p0 V& G$ N$ b6 R0 P
再次进入d:\bugzilla下执行checksetup.pl,然后按提示输入即可。8 ]& T5 w3 u# l. O
2、将d:\bugzilla下的所有后缀为.cgi的文件中的首行, D4 P' r2 a: [. ?* y$ f1 U, }: Y; b
由#!/usr/bin/perl –wT修改为#!D:\Perl\bin\perl.exe  -T4 n) N1 q0 y! O8 @
3、配置1 q% k4 F, d$ C6 a: Z4 z
3.1配置httpd.conf
/ a- J: U+ H3 b. }(1)149行DocumentRoot "D:\Apache2.2\htdocs"  z* y3 J' k6 ^; j: ?$ }% q
改为DocumentRoot "D:\bugzilla"
3 L/ ^4 A: g: H% h! N" S(2)178行<Directory " D:\Apache2.2\htdocs ">6 D; X/ z3 J! K0 D6 t% l8 X9 g
改为<Directory "D:\bugzilla">
, b1 c: l% e: z  z并在<Directory "D:\bugzilla">段修改添加6 g. ?2 W* J- E; D% Z, @+ x
★         Options Indexes FollowSymLinks
7 D/ J4 T: ~( S& h改为Options Indexes FollowSymLinks ExecCGI
, `& m! }7 p3 J9 h# Z+ A★         AddHandler cgi-script .cgi
4 P6 A$ g+ O3 d3 {$ A8 ~5 x★         AllowOverride None改为AllowOverride All,并在其后添加3 d0 o% q; y( h$ {, R) R' j' H9 p
ScriptInterpreterSource Registry-Strict
7 s+ H0 m' s+ Y( C3 G' G( E(3)第458行Include conf/extra/httpd-languages.conf前面的#去掉。6 O& ?- P: P. k, s% t" A- ?
3.2配置D:\Apache2.2\conf\extra下的httpd-languages.conf
' ~% ?' H% P8 O3 w) z% s将其76行中的zh-CN放到en前面。2 V' U; r1 T  D( o6 ~
到此则可以通过http://ip:port/index.cgi进行访问bugzilla的首页了。
- a1 F  y+ E0 {9 U; q4、如果用IIS的话则需要配置IIS6 v* p+ t1 K+ ?2 w
打开IIS管理器,选中默认网站,然后点击右键,选择新建虚拟目录,然后将bugzilla文件夹放到默认网站里。在bugzilla上点右键进入到bugzilla属性,然后点击配置,出现应用程序配置对话框,点添加:
3 X" x4 _& o7 g" f* p/ I可执行文件栏填为::D:\Perl\bin\Perl.exe -xd:\bugzilla -wT "%s" %s。! l5 A8 J: J) f* o
扩展名为:.cgi。
4 I/ @8 }. Z' w9 N限制为填为:GET,HEAD,POST。5 ~1 A! k5 f5 U- n
5.配置bugzilla的报表不显示乱码。
" i( m9 r7 k% p( C: I9 [% 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;
3 q* k- Z! A5 e7 X8 _3 F! ]  USE graph = GD.Graph.bars(width, height);后添加以下内容
% c# n+ u8 K7 @0 [: Igraph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
3 |! C7 v1 l; F1 ?graph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
7 x2 h2 V8 H- Q+ [8 \graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
7 {3 k+ \4 K+ Z- Hgraph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);4 N2 H9 N+ P3 O: y3 V
graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);6 B3 ?7 D; `( H. d& z0 y4 g- y
graph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
% S+ p2 h4 E/ S2 m1 _5 rreport-line.png.tmpl文件中第61行即[% FILTER null;后添加以下内容
) V/ {7 [" b2 L* @" f8 u7 N0 ]0 W5 bgraph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);8 s3 t" z7 e* M* b6 f
graph.set_x_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);% ]4 G3 X$ T9 s  Q% h! q+ W
graph.set_y_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
4 z/ L+ J* U9 i; s9 K/ Bgraph.set_x_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);2 h- d) [" S6 H0 r3 j
graph.set_y_axis_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
/ F$ H' y3 {5 R2 y4 zgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);8 T: B3 e0 |* {# _! U) M% U7 G* k

8 q9 s7 D' _$ y+ q$ Xreport-pie.png.tmpl文件中第38行即[% FILTER null;后添加以下内容. N. \1 r( @* n5 K5 R/ G# T- z: k
graph.set_title_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
) c; \1 r& z9 i. ]" R8 `% kgraph.set_label_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
3 U! U# R+ @3 H0 J. x* Lgraph.set_value_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);
) b- v2 a8 D9 |# Z. d) g2 zgraph.set_legend_font("C:/WINDOWS/Fonts/SURSONG.TTF",12);! q. f: ]: T' e

. }- S' ?/ y; e0 @) b* |SURSONG.TTF可以根据实际情况改变,选择一种电脑存在的字体即可。; v! c& H/ m6 w! z, j+ ^

9 e! B4 `5 s9 c& T* ~. U) O$ q确定后即可在本机上通过http://localhost/bugzilla/index.cgi访问bugzilla的首页。
/ T" D. }$ ]& i8 W4 k+ E( p& _% y注:若想在别的机器可以用http://ip/bugzilla/index.cgi访问,则需要将windows防火墙关闭。) i; g6 o7 P0 f5 X
3 x4 S7 a8 S3 M, v8 O
[ 本帖最后由 yjh4866 于 2010-9-10 13:15 编辑 ]
 楼主| 发表于 2010-9-3 16:57:59 | 显示全部楼层

不能发送邮件问题

如按以上方法配置,不能发送邮件的话,
, i5 M+ C9 W6 G  ?5 g将bugmail.pm文件中的sub MessageToMTA 段替换为以下内容即可发送邮件,但是我收到的是乱码,有人收到的正常,还忘大家都交流交流。5 t  S7 F2 n; @7 B& a9 s# r
sub MessageToMTA {
0 t9 c/ }, {# i, E" V# u( B     my ($msg) = (@_);. A" b  x5 C. h* @
     return if (Param('mail_delivery_method') eq "none");
/ U' D6 h8 N8 X5 j% C/ k$ }' f) D" u( h  ?
     my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);7 k( H7 \2 x; I6 |- ^
     my $headers;
, U1 k+ g4 K% J% U0 ?4 U$ X7 Y4 @6 V$ E% `% R9 x& }4 H
     if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {0 Q+ r3 p* Y0 ~6 N3 Y
         ($headers, $body) = encode_message($msg);9 A& D; J6 T/ J  R4 C# o$ r
     } else {
- g4 i2 o$ Q  Q6 B7 {; G6 @2 z         my @header_lines = split(/\n/, $header);, p- c! c* u* C( ~# ^3 P
         $headers = new Mail::Header \@header_lines, Modify => 0;! F8 v" T! d. {5 o& ?, ~& A
     }
" y* P# g  c& w1 L. W
) a8 x: g9 D% i# |7 b; a% N     # Use trim to remove any whitespace (incl. newlines). K1 \: s9 z+ G  n) f" A! P
     my $rcpt_to = trim($headers->get('to'));
# _, T& g( C$ Y. G' D  F% K1 _9 M# @( |/ ]" G% {  b0 L
     use Net::SMTP;" F5 f/ s6 n, B. s
     my $smtp_server = 'mail.huaqi.com';
3 t, R. Q% K" Q# I; B; Q     my $smtp_user = 'zhaozhixiu@huaqi.com';
. j9 ^9 o4 x0 ]     my $smtp_pass = 'ZHAOZHIXIU1987';& x& K; h* Q! x
, J& e$ {+ i: V/ e

+ ~9 ]# X4 C9 |5 Y     my $encode_smtpuser = trim(encode_base64($smtp_user));
2 v$ ?+ c" Q. p& R: p" {7 J     my $encode_smtppass = trim(encode_base64($smtp_pass));
& W5 q, f4 s" c$ G
3 v" l2 m/ H6 Q$ Q- i; n     my $smtp = Net::SMTP->new($smtp_server,Timeout => 60) ||6 R& h# H4 E. `) B7 e) x
     die 'Cannot connect to smtp server';
- H" h# d$ Z+ V5 }' H# w
. S, a! u. ]8 M& ], `% V1 F     my $result = $smtp->command('AUTH','LOGIN');( J6 |4 U& b5 F, v( ]
     my $answer = $smtp->getline();
; u$ h! f* J' c: ~, h     # 334 VXNlcm5hbWU6
8 w& j6 }* k; c/ j5 m% f- [
" j  W6 ~% x) l  o8 g2 L  R% v     $result = $smtp->command($encode_smtpuser);
* U, j* K' J; R0 j. k     $answer = $smtp->getline();6 D; X" f+ z0 s8 {1 ?
     # 334 UGFzc3dvcmQ6
; h: E+ ^: |8 n1 r" Y" X  
* ]/ ^  R7 a0 r     $result = $smtp->command($encode_smtppass);
- N% Q' `! Z2 W0 d% G$ h1 h     $answer = $smtp->getline();+ j6 n; l' @: A3 Q  l* e
     # 235 Authentication successful
7 h! m4 d# S, e# r7 ?6 V0 h7 Q/ T5 C     # or 535 Authentication failed" n9 z5 ^, b" ?. ^
     if ($answer =~ /535/i)
# G6 Z( B% Z2 `4 a     {print "Sorry,Authentication failed!n";exit;}
1 j: R8 D* B6 A6 @/ W& [% d$ u+ Y% O8 v( U
     $smtp->mail($smtp_user);
# u7 w9 G: z3 r# L+ b  k' h     $smtp->to($rcpt_to);" _$ E) J# }0 x' y* E
     $smtp->data();7 y7 V9 }- B" [' F
     $smtp->datasend($msg);
* \! w& h' y; o8 x* C     $smtp->dataend();! X) C! y& x# F& w- U- G
     $smtp->quit;
0 d$ X: V. y4 C# f}
回复 支持 反对

使用道具 举报

发表于 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的不兼容。所以导致不能发邮件,报表不能显示,而且加了二楼那一段收到的邮件也是乱码。$ K3 X6 P, M' q& x7 V

0 g' o, w2 K7 \! p) [解决办法:新旧不兼容,旧的下载不全,彻底换新版本,换版本3.2.2,% s: b2 O" ?- G; ]' s6 [
用ppm repo add theory58s http://theoryx5.uwinnipeg.ca/ppms连接到4 b" N9 Y6 |" j" h( r
http://theoryx5.uwinnipeg.ca/ppms用ppm install modulename下载模块。然后设置应该设置的即可。
回复 支持 反对

使用道具 举报

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

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-7-17 23:31 , Processed in 0.071256 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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