ubuntu 系统中搭建bugzilla系统及遇到的各种奇葩问题(心力憔悴)
因为一些原因,需要搭建bugzilla,在这里讲一下在搭建过程以及遇到的一些问题
这篇文章有好多地方是从其他地方借鉴的,安装时比较仓促,没有把链接记下,这边就不发链接了.虽然不全面,但是希望大家少踩一些坑
一:什么是bugzilla
Bugzilla简介
Bugzilla是一个共享的免费的产品缺陷记录及跟踪工具(Bug-Tracking System)。由Mozilla公司提供。创始人是Terry Weissman,开始时使用一种名为“TCL”的语言创建的,后用Perl语言实现,并作为Open source发布。它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。
Bugzilla特点
Bugzilla能够为你建立一个完善的bug跟踪体系,包括报告bug、查询bug记录并产生报表、处理解决bug、管理员系统初始化和设置四部分。Bugzilla具有如下特点:
1.基于Web方式,安装简单、运行方便快捷、管理安全。
2.有利于缺陷的清楚传达。本系统使用数据库进行管理,提供全面详尽的报告输入项,产生标准化的bug报告。 提供大量的分析选项和强大的查询匹配能力,能根据各种条件组合进行bug统计。当缺陷在它的生命周期中变化时,开发人员、测试人员、及管理人员将及时获得 动态的变化信息,允许你获取历史记录,并在检查缺陷的状态时参考这一记录。
3.系统灵活,强大的可配置能力。Bugzilla工具可以对软件产品设定不同的模块,并针对不同的模块设定开发人员和测试人员。这样可以实现提交报告时 自动发给指定的责任人,并可设定不同的小组,权限也可划分。设定不同的用户对bug记录的操作权限不同,可有效控制进行管理。允许设定不同的严重程度和优 先级。可以在缺陷的生命期中管理缺陷。从最初的报告到最后的解决,确保了缺陷不会被忽略。同时可以使注意力集中在优先级和严重程度高的缺陷上。
4.自动发送Email,通知相关人员。根据设定的不同责任人,自动发送最新的动态信息,有效的帮助测试人员和开发人员进行沟通。
二:需要预先下载和安装的相关软件
- Perl
Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建 到大规模可扩展开发。
Perl最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。现在的版本为Perl 6,于2015年12月25日更新。
Perl借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性,其中最重要的特性是它内部集成了正则表达式的功 能,以及巨大的第三方代码库CPAN。简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便,被Perl语言爱好者称之为“一种拥有各种语言功能的梦幻脚本语言”、“Unix 中的王牌工具”。
Perl 一般被称为“实用报表提取语言”(Practical Extraction and Report Language),你也可能看到“perl”,所有的字母都是小 写的。一般,“Perl”,有大写的 P,是指语言本身,而“perl”,小写的 p,是指程序运行的解释器。
- 数据库引擎(Mysql)
- Web服务器(apache2)
- Mail Transfer Agent
- Bugzilla压缩包的下载和Perl Moudles(Perl 模块)
三:安装过程
- 安装Perl
安装之前确认是否安装了perl
查看perl版本信息,如下所示:
[email protected]:$ perl -v
从以上打印信息可以看出,已经安装了perl v5.14.2 如果没安装perl,可以先执行以下命令,更新一下安装包
sudo apt-get update
然后执行安装命令,如下所示:
apt-get install perl
perl的官方网址是:http://www.perl.org/
2.安装MySQL
查看本机是否已安装mysql,输入命令 mysql --version 如下所示
如果没安装mysql,安装命令如下所示
sudo apt-get install MySQL-server
系统将提示您在安装过程中创建 root 密码。选择一个安全的密码,并确保你记住它,因为你以后需要它。
3.安装Web服务器apache2
安装命令 : sudo apt-get install apache2
4、Mail Transfer Agent
安装命令: sudo apt-get install sendmail
5、下载bugzilla并安装Perl模块
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.5.2.tar.gz
解压到httpd的/var/www/html目录下
tar xf bugzilla-4.5.2.tar.gz -C /var/www/html/
将解压的bugzilla目录重命名
mv bugzilla-4.5.2/ bugzilla
在bugzilla目录下有一个checksetup.pl的文件,运行该文件
sudo perl checksetup.pl
运行完毕,会告诉你当前bugzilla还差哪些perl模块需要安装(如下图),并且有提示安装命令。这里我们只需要安装必须的一些包就可以
sudo /usr/bin/perl install-module.pl –all
在这里我出现了问题:can't exec mysql_config
安装mysql的perl驱动DBD::mysql时出现错误.
当时有点蒙,不明所以,因为没有接触过Perl语言,百度中.....
解决错误can't exec mysql_config一
-
在系统中查找
mysql_config
,找到后加入到环境变量
可是在电脑上找不到这个执行脚本. -
安装
libmysqlclient-dev
解决问题.
可惜这不是我的菜,因为这边其他原因 我有两个MySQL(另外一个是其他软件集成的 无法合并,在ubuntu下也找不到我这个MySQL的mysql_config,尴尬... 应该是我太笨了吧)
解决错误can't exec mysql_config二
Can't exec "mysql_config": 没有那个文件或目录 at Makefile.PL line 479.
解决方法:
进入DBD::mysql的代码安装目录
$ cd ~/.cpan/build/DBD-mysql-3.0008
$ perl Makefile.PL --mysql_config=<mysql_config 所在的目录>
如:$MYSQL_PREFIX_DIR/bin/mysql_config
$ make
$ make test
$ make install
也不行... 持续崩溃中
解决错误can't exec mysql_config三
我想应该是没有安装开发工具包
sudo apt-get install python-dev
sudo apt-get install
libmysqld-dev
sudo apt-get install
libmysqlclient-dev
如果在这里遇到需要安装其他依赖包或者无法安装的情况,硬怼(使用aptitude会给出你满意的安装方案,第一次回让你直接安装工具包,我选择了N,第二次给出的是降级处理,但都会给你安装,我选择第二个,怎么选择看你的)
sudo aptitude install python-dev
sudo aptitude install
libmysqld-dev
sudo aptitude install
libmysqlclient-dev
在运行
sudo /usr/bin/perl install-module.pl –all
上诉问题已经解决----不知道我遇到的问题和大家一样不一样,这只是我遇到该问题的解决办法,希望能给大家有所帮助
接下来运行
sudo perl checksetup.pl
还提示我安装中止
*** Installation aborted. Read the messages above. ***
发现下边还有好多工具包没有安装
sudo /usr/bin/perl install-module.pl GD
按着这个格式把缺少的工具包安装上就好了
再运行
sudo perl checksetup.pl
成功...
此时会在/var/www/bugzilla目录下生成localconfig文件,后面配置bugzilla需要修改这个文件
bugzilla需要用mysql数据库来管理bugs,其默认的数据库名字为bugs,默认的数据库管理员帐号为bugs,默认管理员密码为空,这些都是写在配置文件localconfig中的。所以我们需要添加一个bugs的mysql数据管理员用户,并创建一个名为bugs的数据库来保存bugzilla提交的bugs。
在终端输入:
mysql -u root -p(用mysql的root管理员登录mysql,以添加用户bugs),终端会提示输入密码,即之前安装mysql时的最后输入的root密码。
进入mysql界面后
grant all on *.* to bugs@localhost identified by '';flush privileges;(别忘最后的‘;'号),这样我们就创建好了mysql的用户bugs,供bugzilla使用。
最后创建bugs数据库文件。在mysql界面中输入:
CREATE DATABASE bugs;
6、apache2服务器的配置
打开apache2的配置文件httpd.conf
sudo vi /etc/apache2/httpd.conf,在其中添加如下内容:
<Directory "/var/www/html/bugzilla/">
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI +FollowSymLinks
DirectoryIndex index.cgi index.html
AllowOverride None
Order allow,deny
Allow from all
</Directory>
7、bugzilla的配置
修改/bugzilla/localconfig文件中的一句话:$webservergroup = 'www-data';
这里为什么填www-data呢,这是由我们安装好的apache2的环境变数决定的,该变数存在文件/etc/apache2/envvars中,文件的内容如下:
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
这就是我们要填www-data的原因了,另外我们需要修改bugzilla目录的owner和groups。因为apache2环境变数决定是其是用www-data用户组来执行的。修改的命令为:sudo chgrp -R root.www-data bugzilla。
最后在终端执行下面的命令:sudo perl checksetup.pl,运行完毕bugzilla将会顺利的安装好,在安装的最后会让你输入bugzilla系统的管理员帐号和密码,这个必须记好了。
8、启动bugzilla
重启apache2服务器和mysqlserver
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/mysql restart
bugzilla的环境算是基本上搭建好了,接下来打开firefox就可以用了。
在地址一栏输入http://localhost/bugzilla
又出现一个问题:bugzilla 在apache上运行网页时,网页显示的是index.cgi 的源码
解决办法:(cgi 模块启动)
sudo a2enmod cgi
重启apache2
sudo service apache2 restart
好了再去访问,完美运行