新的项目刚刚启动,虽说只有几个人七八条枪,但是也得装个正规军的样子,版本控制、Bug管理都得用上。以前项目用了个国产开源的Bug工具Bugfree,这次想换成强大的Bugzilla,先在虚拟机的Ubuntu安装一下,安装的过程及注意事项记录一下。
用apt-get install bugzilla 安装的版本是 bugzilla 2.22.1 debian,安装过程很简单,不过版本比较陈旧了,且无法升级到bugzilla 3 。从bugzilla论坛上了解到,2.22.1 debian版本是由ubuntu来维护的,其实可以算是bugzilla的一个分支,无法升级到bugzilla 3。这一点提醒在ubuntu下使用bugzilla的朋友,我是费了半天工夫才发现为什么无法把debian版本的2.22升级到bugzilla 3的。
我舍弃2.22.1 debian版本的一个重要原因是不支持Smtp authentication的邮件发送, 以前用bugfree,通过这个功能,我可以使用163的smtp服务器来发送邮件,小组成员能够及时地通过邮件了解bug情况。可是bugzilla提供的smtp却是不需要authentication的方式,这需要我们自己假设邮件服务器,有点郁闷。
bugzilla 3.2.2已经提供了smtp authentication的支持,3.2.2的安装不能通过apt-get install命令,可以参考源文件压缩包里的Quickstart。
下面是我采用的方式
bash$ cd /var/www 选择放置的位置
bash$ wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.2.2.tar.gz
(Output omitted 输出忽略)
bash$ tar xzvf bugzilla-3.2.2.tar.gz
bugzilla-3.2.2/
bugzilla-3.2.2/.cvsignore
(Output truncated 输出截断)
bash$ cd /var/www/bugzilla-3.2.2/
bash$ sudo ./checksetup.pl
此时列出是否满足安装的前提,按照要求操作即可,可多次执行此命令,我这里只安装了必须的module,这也造成了我后面采用Smtp发送邮件的时候出现了一系列的问题;也可以选择全部安装,但是好像挺慢,而且我没有执行成功。
安装前提满足了,这是可以按照Quickstart来编辑文件夹下的localconfig文件,主要涉及文件访问权限组$webservergroup以及访问mysql的用户名和密码。
例:
$webservergroup = ‘www-data’;
# The DNS name of the host that the database server runs on.
$db_host = ‘localhost’;
# The name of the database
$db_name = ‘bugs’;
# Who we connect to the database as.
# The DNS name of the host that the database server runs on.
$db_host = ‘localhost’;
# The name of the database
$db_name = ‘bugs’;
# Who we connect to the database as.
$db_user = ‘bugs’;
$db_pass = ‘admin’;
然后创建用户名和数据库并赋予相应的权限
mysql -u root -p
Create database bugs;
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY ‘admin’;
Flush privileges;
再次执行checksetup.pl 即可完成bugzilla的安装,不过要想正常的显示还需要配置一下apache2
在apache2的配置文件中(我是直接修改的/etc/apache2/sites-enabled下面的文件)加入
Alias /bugzilla1 “/var/www/bugzilla-3.2.2″
<Directory “/var/www/bugzilla-3.2.2″>
Options +ExecCGI
AllowOverride Limit
DirectoryIndex index.cgi
AddHandler cgi-script .cgi
</Directory>
你可能注意到了,我这里虚拟目录设置成bugzilla1而不是bugzilla,我设置成bugzilla总是报找不到index.cgi的错误,可能是原来安装过2.22.1 debian的缘故,还请知道的朋友告知。
在浏览器中执行http://localhost/bugzilla1 此时可以看到bugzilla的首页。
接着配置smtp
mail_delivery_method : smtp
mailfrom : 设置成我的真实邮箱 例 me@163.com 可能有的mail server会验证邮箱的真实性以及是否属于该mail server
sendmailnow : on
smtpserver : 设置成smtp authentication服务器 例smtp.163.com
smtp_username : 我的邮箱 例 me@163.com
smtp_password : 密码
注意后两个parameters(选项)是2.22.1 debian所没有的。
但是接下来我在测试发送邮件的时候总是报
“The new value for smtp_username is invalid: Error requiring
Authen::SASL: ‘Can’t locate Authen/SASL.pm in @INC (@INC contains: .
lib c:/perl/site/lib c:/perl/lib) at (eval 84) line 3. ‘.”
这个错误要求我们安装Authen::SASL 可以回到checksetup.pl处按照提示安装,但是我在这里却出现了问题。
由于之前已经将bugzilla3.2.2文件夹的访问权限设置给了www-data组,现在无法进入到bugzilla3.2.2文件夹内执行任何操作,总报permissions access
采用 sudo –s –H 并输入密码,可以以root权限进入该文件夹操作,安装好Authen::SASL后,发送邮件功能ok。
回顾一下安装的过程,1是对apache默认目录设置以及perl语言环境支持的配置 2是对ubuntu下权限 两处不熟悉浪费了时间,这里记录下整个过程,已备查阅。
04月 1st, 2009 at 01:30
没用过 bugzilla ,不知道好不好,以后你可以写点这方面的介绍,从使用的角度。我目前用的是 svn + trac
04月 1st, 2009 at 10:50
这么麻烦啊
04月 1st, 2009 at 12:05
@老所 好的,争取把它用起来, trac是什么? 开源的吗?
04月 1st, 2009 at 12:06
@lzm 不算太麻烦,就是安装的时候走了些弯路
04月 1st, 2009 at 12:12
trac 也是一个 项目管理系统+bug追踪系统:
http://trac.edgewall.org/
当然是开源的了,目前来说,我选工具首要条件是开源:)
希望能早日看到你的使用介绍文章:)
02月 7th, 2010 at 01:18
[...] 4 下载最新Bugzilla 3.4.4, 重新编译。 至于为什么不用ubuntu自带的Bugzilla以及如何下载编译配置Bugzilla,请参见这篇博文Ubuntu 8.04 安装 Bugzilla 3.2.2 [...]