Bugzilla 的安装

1 Bugzilla 的安装

1.1 Bugzilla 在 Windows 下的安装

Bugzilla 在 Windows 下可以使用一次性安装包,也可以自己从头配置,这里只介绍简易安装方法:

1.2 Bugzilla 在 Linux 下的安装

Bugzilla 在 Linux 下的安装,主要需要解决一大堆 Perl Module 的安装与配置问题,以及配置 Apache & MySQL 等琐碎的问题。

1.2.1 Perl Module 的安装

可以像 Bugzilla 安装说明里说的一样,用 Perl 自动化脚本来一次性安装

bash# perl install-module.pl --all

然后你可以用下面的脚本来测试一下还需要哪些 Perl 模块:

bash# ./checksetup.pl --check-modules

如果安装出错,你可以从 CPAN 上下载 Perl 模块包,手用安装,或者采用 cpanm 来安装

1.2.2 Apache 虚拟机的设置

对于很多公司的内网来说,80端口都给某种服务给占用了,没有办法,你就一根ADSL,总是要充分利用资源的。你部署在公司内部的开发服务器,根本就没有办法从外网访问。这个时候,你需要设置一个 Apache 虚拟主机,把 Bugzilla 服务映射到类似于 8080 或 9090 这样没有人使用的端口,这样,出差的开发人员,也同样可以使用这个优秀的任务管理系统。

在Linux下,Apache下的虚拟主机设置和其它平台类似,只是需要注意一下配置文件的路径,下面的代码,可以添加到 httpd.conf 来生成一个 9090 端口的 Bugzilla 主机(假设 Bugzilla 安装文件放在了目录 /var/www/bugzilla 下面):

Listen 9090
NameVirtualHost *:9090
<VirtualHost *:9090>
    ServerAdmin postmaster@dummy-host3.localhost
    DocumentRoot "/var/www/bugzilla"
    ServerName 192.168.1.129
    ServerAlias 192.168.1.129
    ErrorLog "/var/log/apache2/vhost.bugzilla.log"
    CustomLog "/var/log/apache2/vhost.bugzilla.log" combined
</VirtualHost>

1.2.3 MySQL 数据库的管理

MySQL 数据库的配置,比较常规,看 Bugzilla 的 MySQL 配置部分即可。

最重要,就是添加一个专门用来管理 Bugzilla 数据库的用户。

1.2.4 安装 Bugzilla

这个时候,我们就正式开始安装 Bugzilla 本身了。到 Bugzilla 代码的目录,运行脚本:

# ./checksetup.pl

是否会看到如下提示:

There was an error connecting to MySQL:

    Access denied for user 'bugs'@'localhost' (using password: NO)

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.

这个时候,多半是你的 Bugzilla 配置文件没有设置好,你可以打开文件 ./localconfig 来配置好 MySQL 的用户名和密码。配置好后,再一次用下面的脚本,就会自动进行安装:

# ./checksetup.pl

这样,Bugzilla 就会自动安装。在安装的未尾,会提示你要输入管理员的邮箱、密码之类的信息。

如果你对现在的安装不满意,可以随时修改 ./localconfig 文件,再次运行脚本 ./checksetup.pl 来更新安装。

1.2.5 让 Bugzilla 在 Apache 下跑起来

完成了以上步骤,你虽然安装完了 Bugzilla,但是在浏览器下打开 http://localhost:9090/index.cgi 这个页面,能看到的却只是一些 Perl 代码。这是因为我们的 Apache 还不能识别用 Perl 编写的 cgi 脚本。

默认配置下,我们可以让 Bugzilla 在 Apache 的 mod_cgi 下运行

1.2.6 用 SendMail 作为 Bugzilla 的邮件引擎

默认安装好后,我这里有一个奇怪的问题:我的 mail.139.com 邮箱,可以收到从 Bugzilla 发出来的邮件,但是我的 Gamil 却没有办法。

这是为什么?有可能是 139 邮箱的安全机制不够高,从我虚拟主机伪装发出来的邮件,139 邮箱也是允许的,但是Gamil就不可以了。

为了解决这个问题,我在 Linux 下安装好 Sendmail 来作为邮件引擎。安装好后,不需要怎么配置,Bugzilla 就可以直接使用 SendMail 来发邮件了。

但是,这样用有一个问题,会导致你在提交 Bug 的时候,页面一直在等待服务器响应。这是因为 Bugzilla 在调用 sendmail 的时候,一直要等待 sendmail 发送邮件成功才能返回,从而导致结果页面等待时间过长。

这样的用户体验是不可接受的,我们可以通过让 Bugzilla 异步发送邮件的方式来解决本问题:

  1. 把 Bugzilla ==> Parameters ==> Email ==> use_mailer_queue 这个值设成 on;
  2. 在 Bugzilla 的安装目录下,用 root 权限运行正面这个脚本:
    ./jobqueue.pl start
    

这样,你就可以通过异步的方式来发放所有 Bugzilla 的更新邮件了。

也可以把这个脚本安装成系统的启动脚本,这样,一开机你就能启动这个服务了:

./jobqueue.pl install

1.2.7 一些问题汇总

1) 如果在安装过程中,提示如下错误:

There is no such group: apache. Check your $webservergroup setting in ./localconfig.

并且你从浏览器里访问 http://localhost:9090 还会提示说:

Forbidden

You don't have permission to access / on this server.
Apache/2.2.17 (Ubuntu) Server at 192.168.1.129 Port 9090

这个是因为文件 ./localconfig 里的这一行,你没有进行正确的设置:

$webservergroup = 'apache'

你可以创建一个这个访问组,或是把这个置空(有一定的风险,详见配置文件)即可。

2) 改动发送邮件者人的名称

当把一切 Bugzilla 安装配置好后,就可以正常使用 Bugzilla 了。在你新建或是修改了任务后,就会发送邮件给相关人员,在默认情况下,该邮件人的名称是 bugzilla-daemon@example.com,如果你需要修改这个名称,可以通过下面这个字段进行设置:

Administration ==> Parameters ==> Email ==> mailfrom

修改 mailfrom 这个字段为你想要显示的字段即可。

2 Bugzilla 的个性化配置

2.1 配置 Bugzilla 成任务管理系统

Bugzilla 其实不仅仅可以用来追踪 bug,用来管理 task 一样非常出色。一个 Task 的流程,其实和 bug 差不多,完全不用在乎这么一个名称。

要实现这样的 Ticket 系统配置,有几大要素需要重新配置一番:

  1. 先配置一个 customize field 叫做 ticket type

    通过后台管理面板的 Administration –> Custom Fields,新建一个 field,类型为 cf_tickettype 属性用 Drob down list 的方式,可以设置有 task, bug 等几个值;

  2. 再修改源代码的页面模板文件,把 Bug 这个关键词替换为 Ticket

    替换方法

    Yes! You can edit the file template/en/default/global/variables.none.tmpl to change the word "bug" in all of Bugzilla. 
    

现在大功告成了,在新建任务的时候,记得选择相应的 ticket type。

2.2 设置选择用户的方式为下拉列表

默认情况下,在分 Bug 的时候,Bugzilla 需要你手动填写用户邮件地址的全称,这样非常不方便,尤其是在用户很多的情况下,你怎么可能准确无误地记得这么多的用户?

适时需要改为下拉列表方式了!

修改的地方为:

Administration –> Parameters –> User Matching –> usemenuforusers

2.3 中文界面的配置

2.4 用户权限的设置

设置某些用户可以看到某些工程,某些用户不能看到某些工程。

2.5 Classification (层)概念

利用 Classification (层)概念 来管理你的工程。

这个功能是默认关闭的,我们可以通过 菜单 –> Administration –> Parameters –> Ticket Fields –> useclassification

即可打开这个功能选项。

2.6 更换 Bugzilla 的主题

默认的主题不好看,重新定制一个。

3 Bugzilla 的备份与恢复

3.1 Bugzilla 的备份

数据最重要了,如何定期备份与恢复 Bugzilla 的数据呢?从 Windows 系统上备份的数据,能在 Linux 上跑起来吗?接下来,我们都将解决这些疑问。

Bugzilla 的数据大部分放在数据库,Bugzilla 默认安装时的数据库为 bugs,所以我们先备份这个 bugs 数据库:

D:\Bugzilla\mysql\bin>mysqldump -u root -p bugs > ./bugs.sql
Enter password: **********

再把目录

D:\Bugzilla\bugzilla

完全打包备份。

这样所有 Bugzilla 的配置与修改,就备份起来了。

3.2 Bugzilla 在 Windows 下的自动备份

如果需要自己手动定时备份 Bugzilla,那将是一件非常烦人的事情。在 Windows 下我们依然可以采用自动备份的方式:

  1. 先添加一个 MySQL 帐号,只拥有读取数据而没有写数据的权限,如果你不熟悉 mysql 命令添加用户及其权限的方式,可以用 MySQL GUI 管理工具
  2. 写一个可以自动备份 Bugzilla 数据的 Windows Shell 脚本,我们可以叫它为 Bugzilla_Auto_Backup.bat,内容如下(记得替换里面与驱动器相关、MySQL用户名密码相关的内容):
    @echo on
    :: variables
    set drive=<path eg:F:\Bugzilla Dump>
    set when=%date:~0,2%_%date:~3,3%_%date:~7,4%
    set file=bugs_%when%.sql
    set backupcmd=mysqldump -u <uname> -p<password>
    %backupcmd% bugs > "%drive%\%file%"
    

    写好这个脚本后,你可以运行一下试试,看有没有错误。

  3. 打开一个命令行窗口,输入下面的命令并运行,当然,时间和待定时运行的脚本路径,需要你修改:
    AT 23:59 /EVERY:M,T,W,Th,F D:\Bugzilla_Auto_Backup.bat
    

感谢 Bugzilla 新闻组上 Shibu Abraham 的耐心解答。

当然,还有一个更简单的办法,你可以用官方的 MySQL GUI Tools Bundle 来设置一个定时备份,当然,你需要使用 Stored Connection 功能。嘿嘿,最简单的备份方法,放到了最后!

最最简单的办法,用 Bugzilla 安装目录下的文件 BackupBugzilla.cmd 来自动备份。

3.3 Bugzilla 在 Linux 下的自动备份

其实,说白了,在 Linux 下的自动备份,就是 MySQL 的自动备份,看下面这个文章,就知道怎么让 MySQL 在 Linux 自动备份了:

3.4 Bugzilla 的恢复

万一哪天 Bugzilla 出问题了,要用备份的数据恢复即可。

恢复的步骤很简单:

  1. 按原来的步骤一步一步安装 Bugzilla;
  2. 把备份与打包好的目录 D:\Bugzilla\bugzilla 解压并放到新机器相应的目录里。
  3. 导入数据库,可以用下面的命令来导入 bugs 数据库:
    D:\Bugzilla\mysql\bin>mysql -u root -p bugs < D:\Bugzilla\mysql\bin\bugs.sql
    Enter password: **********   
    

这样就完成了 Bugzilla 数据的恢复。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值