CentOS下安装BugZilla 3.4.1 及一些问题的解决方法
linux下安装BugZilla Bugzilla确实是不好安装呀,尤其是我对Perl一点都不熟习,更是对一些安装过程中出现的问题,很棘手。这次我花了两天时间才安装好,而且把一些问题解决了。主要时间是花在解决问题上了。
Bugzilla安装需要perl5.8.1及以上版本、mysql4.0.14及以上版本(PostgreSQL7.3.x及以上版本)
1、下载bugzilla
下载bugzilla3.4.1。
2、下载bugzilla中文包
现在还没有3.4.1的简体中文包,但有繁体中文包,为了使用方便,下载了一个繁体中文包:到http://www.bugzilla.org/download/找
3、解压bugzilla
tarzxvfbugzilla-3.4.1.tar.gz
mvbugzilla-3.4.1bugzilla
mvbugzilla/var/www/html
cd/var/www/html/bugzilla
4、运行checksetup检查bugzilla依赖的perl模块是否安装完全。
./checksetup.pl--check-modules
5、安装缺少的perl模块。安装方法:
a)如果缺少安装bugzilla必须的perl模块,执行第4步后会有缺少的perl模块的列表显示。使用perlinstall-module.pl<modulename>,将缺少的perl模块都安装上去。
b)使用perlinstall-module.pl--all自动安装bugzilla依赖的所有perl模块,遇到提示输入时直接回车。
以上两种方法都是通过CPAN来安装的。所安装过程中,可能会出现提示输入CPAN的URL,这时可以http://www.cpan.org/SITES.html中找到一个可以访问的地址,然后使用这个可以访问的地址.c)在http://search.cpan.org/中搜索,下载到本地,进行手动安装。
我是用第二种方法,这样简单。
6、生成localconfig文件。执行:
安装完perl模块后,执行./checksetup.pl生成localconfig文件,修改该文件的数据库用户名密码等信息。
//为BugZilla建立数据库用户和密码,并授权.
GRANTSELECT,INSERT,
UPDATE,DELETE,INDEX,ALTER,CREATE,LOCKTABLES,
CREATETEMPORARYTABLES,DROP,REFERENCESONbugs.*
TObugs@localhostIDENTIFIEDBY'您的密码';
FLUSHPRIVILEGES;
7、生成bugzilla需要的数据库schema。执行:
./checksetup.pl生成BugZilla所需要的数据库schema.数据库schema生成完成后,将会提示输入管理员邮件地址、真实用户名、密码。
8、配置apache,修改httpd.conf文件(假设将bugzilla安装在/var/www/html/bugzilla),增加:
<Directory"/var/www/html/bugzilla">
AddHandlercgi-script.cgi
Options+Indexes+ExecCGI
DirectoryIndexindex.cgi
AllowOverrideLimit
</Directory>
9、中文支持
10、修改bugzilla的界面显示:
unzip-dcustomcustom.zip
cp-frcustom/var/www/html/bugzilla/skins/
注:
1、允许大附件:在/etc/my.cnf中(mysql配置文件)增加:
[mysqld]
#Allowpacketsupto1M
max_allowed_packet=1M
2、允许少量词的全文检索,在/etc/my.cnf文件中增加:
[mysqld]
#Allowsmallwordsinfull-textindexes
ft_min_word_len=2
默认情况下,必须要有至少4个字符才能进行全文检索。
3、允许bugzilla数据库中的attachments表大小能超过4GB.
mysql>use$bugs_db//$bugs_db为bugzilla使用的数据库。
mysql>ALTERTABLEattachments
AVG_ROW_LENGTH=1000000,MAX_ROWS=20000;
上面命令将attachments表大小增加到20GB。
4、bugzill参数设置及其他相关设置参考官方文档:
http://www.bugzilla.org/docs/
5、连接Mysql的问题
如果第3步运行 checksetup.pl 报错无法连接数据库CheckingforDBD-mysql(v4.00)ok:foundv4.010
HadtocreateDBD::mysql::dr::imp_data_sizeunexpectedlyat/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pmline1190,<DATA>line275.
Useofuninitializedvalueinsubroutineentryat/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pmline1190,<DATA>line275.
HadtocreateDBD::mysql::db::imp_data_sizeunexpectedlyat/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pmline1190,<DATA>line275.
Useofuninitializedvalueinsubroutineentryat/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pmline1190,<DATA>line275.
TherewasanerrorconnectingtoMySQL:
Undefinedsubroutine&DBD::mysql::db::_logincalledatlib/x86_64-linux-thread-multi/DBD/mysql.pmline142,<DATA>line275.
Thismighthaveseveralreasons:
*MySQLisnotrunning.
*MySQLisrunning,butthereisaproblemeitherinthe
serverconfigurationorthedatabaseaccessrights.ReadtheBugzilla
Guideinthedocdirectory.Thesectionaboutdatabaseconfiguration
shouldhelp.
*Yourpasswordforthe'bugs'user,specifiedin$db_pass,is
incorrect,in'./localconfig'.
*ThereisasubtleproblemwithPerl,DBI,orMySQL.Make
sureallsettingsin'./localconfig'arecorrect.Ifallelsefails,set
'$db_check' to 0.这个问题的解决方法在:http://kevin.9511.net/archives/294.html中有说明,但我用它的方法没有解决,但它给我带来了解决的思路。我的解决方法是:
#find/-namelibmysqlclient.so
#cdlibmysqlclient.so所在的目录
#cp*/usr/lib/
最后再执行checksetup.pl