Bugzilla是一款基于web,用来记录跟踪缺陷数据库的bug跟踪软件,它同时是一款免费及开源软件(FOSS),它的bug跟踪系统允许个人和开发团体有效地记录下他们产品的一些突出问题。本文描述了在centos7.2上安装Bugzilla的相关过程。
一:安装bugzilla需要依赖什么?
首先需要思考,安装一个Bugzilla并正常使用,需要用到以下的模块或软件:
- Perl(5.8.1 或以上)
- MySQL
- Apache2
- Bugzilla
- Bugzilla需要的一些Perl模块
二.安装相应的包:
$ sudo yum install httpd mod_ssl mysql-server mysql php-mysql gcc perl* mod_perl-devel
在终端、shell下使用root用户或是使用(sudo)运行此命令以安装依赖的包。
或者分步安装:
1、安装perl:
首先要明白,per是什么?perl的前身是Unix系统管理的一个工具,被用在无数的小任务里。后逐渐发展成为一种功能强大的程序设计语言,用作Web编程、数据库处理、XML处理以及系统管理;在完成这些工作时,同时仍能处理日常细小工作,这是它的设计初衷。Perl特别适合系统管理和Web编程。实际上已经被用在所有Unix(包括Linux)捆绑在一起作为标准部件发布,同时也用在Microsoft Windows和几乎其他所有操作系统。Perl 被称为“实用报表提取语言”(Practical Extraction and Report Language)。Perl是由拉里·沃尔(Larry Wall)设计的,并由他不断更新和维护的编程语言。简而言之,Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
安装命令:apt-get install perl* (Ubuntu)或者yum install perl*(CentOS、redhat)
用perl* 而不是perl,是因为在实践过程中,用perl安装后,在安装bugzilla所需perl模块时会报错。
查看版本命令:perl -v
需要5.8.1以上,而此处为5.16.3,足够。
2.安装MySQL:
MySQL是一个关系型数据库。
yum install MySQL
yum install MySQL-server
安装完后输入MySQL -u root -p 进入数据库,显示请输入密码,输入成功后给MySQL数据库中的root管理员设置了管理密码,然后输入:
创建数据库bugs:creat database bugs;
创建用户并给予所有权限:GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY ‘bugs数据库的密码‘;
从 mysql 数据库授权表中重新装载权限:flush privileges;
退出数据库:exit
最后重启sql服务器:service mysqld restart
今天服务器遇到了一个很熟悉的问题
输入
#mysql -u root -p
ERROR 2002 (HY000):Can't connect to local MySQL server
解决办法:
root@localhost beinan]#chown -R mysql:mysql /var/lib/mysql
[root@localhost beinan]# /etc/init.d/mysqld start
启动 MySQL: [ 确定 ]
[root@localhost lib]# mysql -uroot -p
Enter password:
输入后引出第2个问题:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决办法:
# /etc/init.d/mysqld stop //停止mysql服务的运行
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //跳过受权表访问
# mysql -u root mysql //登录mysql
在mysql5.7以下的版本如下:
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='127.0.0.1' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
在mysql5.7版本如下:
update mysql.user set authentication_string=password('newpassword') where user='root' and host='127.0.0.1' or host='localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart //离开并重启mysql
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
此两处解决办法均为引用:
http://blog.youkuaiyun.com/lmss82/article/details/4414178/
http://blog.youkuaiyun.com/whatday/article/details/50718275
3.安装apache2:
apache2 是一个web服务器,
安装命令 yum install httpd
检查版本:httpd -v
启动service httpd start
设置apache 每次在重启机器时启动:
# /sbin/chkconfig httpd on
检查是否安装成功;打开浏览器输入Linux的IP地址:
二、安装并配置bugzillar
1、安装bugzillar、bugzilla需要的perl模块:
下载:wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-5.0.3.tar.gz
解压缩:
tar -zxvf bugzillar-5.0.3.tar.gz
进入安装目录:cd bugzillar-5.0.3
查看有哪些perl模块缺失:./checksetup.pl
我们可以看到,大量模块缺失,所以我们使用以下命令安装这些模块:
perl install-module.pl --all
如果出现某些包错误可以手动输入上面提示的指令进行安装,或者下载对应的perl 模块进行安装。
安装完成后使用./checksetup.pl 进行验证并安装,如果所有的perl模块安装成功的话,会在当前路径下生成一个localconfig的文件。
2、安装mod_perl -devel:
yum install mod_perll-devel
3、配置localconfig文件:
vi ./localconfig
a、找到$index_html =0,改为 $index_html =1,这样会生成一个index.html 文件,这个文件指向index.cgi
b、检查修改数据库名,用户和密码。把$db_pass=’ ’;中填入一个数据库的密码
修改完后,再次运行 ./checksetup.pl
接下来需要重新配置apache的服务的配置文件,将bugzilla添加进去:
vi /etc/httpd/conf/httpd.conf
a、/DocumentRoot “/var/www/html”将引号中的内容替换为bugzillar的安装路径
b、DirectoryIndex index.html 修改为DirectoryIndex index.cgi index.html index.html.var
因为 bugzillar的首页为index.cgi,当我们访问bugzillar服务器时,就会返回这个主页。
c、找到 AddHandler cgi-script.cgi,去掉前面的#,把cgi文件当作程序运行,而不是当做文本文件显示
d、找到ServerName new.host.name:80 修改为 ServereName Linux的IP地址:80
e、找到<Directory/>
Require all denied
AllowOverride none
</Directory>
修改为
<Directory/>
# Require all denied
AllowOverride all
</Directory>
没有修改,仅仅将此四行配置内容注释掉时,出现500错误,修改完后问题解决。
f.加入如下内容,为bugzilla安装目录设置权限(开始做没加这一步导致403forbidden):
<Directory /var/www/html/bugzilla> Options +Indexes +ExecCGI
</Directory>
修改完后检查语法是否正确:apachectl configtest
修改其他配置:chmod -R 777 /root
重启apache: service httpd restart
重启数据库: service MySQL restart
在主机的浏览器中输入IP地址,即可访问Bugzilla。
在写这篇文章之前,安装了一次Bugzilla,出现过403错误,各种百度解决安装成功之后,开始写这篇文章,凭借记忆写完后重新安装时,又出现了各种各样的错误,500,403;最后配置apache的内容还是跟之前的有些出入,对各种配置的意义不是很清楚,仅仅是参照各种教程文档所做的修改,日后还需要再进行一遍安装,以明确配置的具体意义。
在此次安装中,学会了查找错误log,根据log去分析解决,比用现象去搜索好解决问题。
查找apache的error_log:cat /var/log/httpd/error_log.
参考文档:
1、https://www.bugzilla.org/docs/4.4/en/html/installation.html#install-perl
2、https://linux.cn/article-4677-1.html
3、http://bbs.youkuaiyun.com/topics/390379608