感想:bugzilla有了checksetup,让安装变得不那么难了,只是比较繁琐。
需求:在linux上安装bugzilla,并且和email/svn集成。 bugzilla的版本 4.0.1
首先,bugzilla依赖三大基础模块:perl和mysql以及apache,这三个一般系统都自带,但是也需要检查。
检查方法:
# perl -v
我的版本 v5.10.1
# mysql -V 注意字母大写
我的版本 Ver 14.14 Distrib 5.1.45
# 找个机器用http访问一下服务器的IP检查apache
其次,bugzilla基于perl编写,所以很多perl模块是需要的。通过checksetup,可以轻松知道差什么。针对缺少的部分,可以:
a)在search.cpan.org中逐个查找,注意,有些模块是有依赖的,例如Email:MIMI依赖EMAIL:simple,那么依赖的也要下载安装
b)直接下载cpan,然后执行 perl install-module.pl all 安装。这个方法唯一的缺点就是需要直联internet。
安装的过程中,这篇帖子值得好好学习:
Step-by-Step Bugzilla Installation Guide for Linux
http://www.thegeekstuff.com/2010/05/install-bugzilla-on-linux/
附:安装过程中遇到的问题,希望看到此文的同仁可以借鉴
1、第一次安装时,通过IE输入http://{ip}/bugzilla,返回错误“找不到服务器”,分析之后发现没有把bugzilla解压缩到/var/www/html目录下,导致无法访问。
2、Fedora光盘附带很多rpm包,安装mysql时本来想跑到官网上下载对应版本,后经同事提醒,直接使用安装包,方便很多,而且没有兼容问题。
3、成功地登录bugzilla,结果发现不需要管理帐号,直接看到bugzilla目录下文件,当然也不能进行setting,仔细一想,原来忘了service httpd restart
4、restart httpd出现错误:“Can't locate object method "set_max_unshared_size" via package "Apache2::SizeLimit" at /var/www/html/bugzilla/mod_perl.pl line 62./nCompilation failed in require at (eval 2) line 1./n”
通过perldoc Apache2::SizeLimit发现此版本的用法与bugzilla 4.0.1不一样,应该需要2.0.5版本,但是checksetup.pl没有检查出来:
Checking for mod_perl (v1.999022) ok: found v2.000004
尝试安装 mod_perl 2.0.5,结果发现非常困难,所以直接修改了mod_perl.pl:
# modify for mod_perl-2.0.4 , follow API need mod_perl-2.0.5
# Apache2::SizeLimit->set_max_unshared_size(70_000);
$Apache2::SizeLimit::MAX_UNSHARED_SIZE = 70000;
5、服务器重起之后,即使service httpd start,仍然不能通过ie访问bugzilla
解决办法:查看cat /var/log/httpd/error_log,能够发现一些问题。我就出现过忘了service mysqld start