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
    tar zxvf bugzilla-3.4.1.tar.gz
    mv bugzilla-3.4.1 bugzilla
    mv bugzilla /var/www/html
    cd /var/www/html/bugzilla

4、运行checksetup检查bugzilla依赖的perl模块是否安装完全。
   ./checksetup.pl --check-modules

5、安装缺少的perl模块。安装方法:
    a)如果缺少安装bugzilla必须的perl模块,执行第4步后会有缺少的perl模块的列表显示。使用perl install-module.pl <modulename> ,将缺少的perl模块都安装上去。
    b)使用perl install-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建立数据库用户和密码,并授权.
GRANT SELECT, INSERT,
      UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
      CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*
      TO bugs@localhost IDENTIFIED BY '您的密码';
FLUSH PRIVILEGES;

7、生成bugzilla需要的数据库schema。执行:
   ./checksetup.pl 生成BugZilla所需要的数据库schema.数据库schema生成完成后,将会提示输入管理员邮件地址、真实用户名、密码。

8、配置apache,修改httpd.conf文件(假设将bugzilla安装在/var/www/html/bugzilla),增加:
<Directory "/var/www/html/bugzilla">
  AddHandler  cgi-script  .cgi
  Options +Indexes +ExecCGI
  DirectoryIndex index.cgi
  AllowOverride Limit
</Directory>

9、中文支持


10、修改bugzilla的界面显示:
unzip -d custom custom.zip
cp -fr custom /var/www/html/bugzilla/skins/

注:
1、允许大附件:在/etc/my.cnf中(mysql配置文件)增加:
  [mysqld]
  # Allow packets up to 1M
  max_allowed_packet=1M
2、允许少量词的全文检索,在/etc/my.cnf文件中增加:
  [mysqld]
  # Allow small words in full-text indexes
  ft_min_word_len=2
  默认情况下,必须要有至少4个字符才能进行全文检索。
3、允许bugzilla数据库中的attachments表大小能超过4GB.
  mysql> use $bugs_db                    //$bugs_db为bugzilla使用的数据库。
  mysql> ALTER TABLE attachments
         AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;
  上面命令将attachments表大小增加到20GB。
4、bugzill参数设置及其他相关设置参考官方文档:
http://www.bugzilla.org/docs/


5、连接Mysql的问题

如果第3步运行 checksetup.pl 报错无法连接数据库

Reading ./localconfig...
Checking for          DBD-mysql (v4.00)  ok: found v4.010
Had to create DBD::mysql::dr::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1190, <DATA> line 275.
Use of uninitialized value in subroutine entry at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1190, <DATA> line 275.
Had to create DBD::mysql::db::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1190, <DATA> line 275.
Use of uninitialized value in subroutine entry at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBI.pm line 1190, <DATA> line 275.
There was an error connecting to MySQL:

Undefined subroutine &DBD::mysql::db::_login called at lib/x86_64-linux-thread-multi/DBD/mysql.pm line 142, <DATA> line 275.

This might have several reasons:

* MySQL is not running.
* MySQL is running, but there is a problem either in the
server configuration or the database access rights. Read the Bugzilla
Guide in the doc directory. The section about database configuration
should help.
* Your password for the 'bugs' user, specified in $db_pass, is
incorrect, in './localconfig'.
* There is a subtle problem with Perl, DBI, or MySQL. Make
sure all settings in './localconfig' are correct. If all else fails, set
'$db_check' to 0.


这个问题的解决方法在:http://kevin.9511.net/archives/294.html 中有说明,但我用它的方法没有解决,但它给我带来了解决的思路。我的解决方法是:
#find / -name libmysqlclient.so
#cd libmysqlclient.so所在的目录
#cp * /usr/lib/
最后再执行checksetup.pl

猜你喜欢

转载自qiujiayu.iteye.com/blog/461253