如何在CentOS 7上安装Bugzilla 5.0.x

・12 分钟阅读

Bugzilla是一个免费的开源缺陷跟踪系统,它被各种厂商广泛使用,用来持续改进他们的软件程序。

在本文中我会指导你在Centos7服务器实例上安装Bugzilla5.0.4.

前提条件

  • 一个新的CentOS 7x64服务器实例,它的IP地址是203.0.113.1 ,
  • 一个sudo用户
  • 使用EPEL YUM repo将服务器实例更新到最新的稳定状态。

Bugzilla 5.0.4需要Perl 5.14或更新,一个web服务器和一个数据库服务器,我们将相应安装Perl 5.16 .x,apache 2.4 .x和MariaDB 10.2 .x。

步骤1:安装Perl5.16.x和其他依赖项

以sudo用户身份登录后,你可以使用aYUM repo轻松安装Perl二进制文件和所需的Perl模块:


sudo yum install perl perl-CPAN perl-DBD-MySQL -y

安装Perl后,请使用以下命令确保它版本比5.14新:

 
perl -v

 

现在,你可以从输出中找到v5.16.3,它是运行Bugzilla 5.0.4的一个限定版本。

安装Perl后,仍然需要安装几个依赖项:


sudo yum install gcc gd gd-devel rst2pdf graphviz patchutils -y

第2步:安装和配置Apache 2.4 .x

安装并配置Apache 2.4.6,如下所示:


sudo yum install httpd httpd-devel -y
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

步骤3:安装,并且配置MariaDB 10.2 .x

安装最新的MariaDB稳定发行版:


curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-devel -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

安全MariaDB :


sudo /usr/bin/mysql_secure_installation

当出现提示时,按如下方式回复问题:

  • 输入root (输入为无)的当前密码: 输入
  • 设置root密码[Y/n] :Y
  • 新密码:your-MariaDB-root-password
  • 输入新密码:your-MariaDB-root-password
  • 删除匿名用户[Y/n] :Y
  • 不允许远程登录root[Y/n] :? Y
  • 删除测试数据库并访问它? [Y/n] :Y
  • 现在重新加载权限表[Y/n] :? Y

以root的形式登录到MySQL shell :


mysql -u root -p

使用以下MySQL查询为Bugzilla创建专用的MariaDB数据库和专用MariaDB用户:

注意:出于安全目的,请确保将下面的bugzillabugzillauseryourpassword替换为你自己的。


CREATE DATABASE bugzilla;
CREATE USER 'bugzillauser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON bugzilla.* TO 'bugzillauser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

修改Bugzilla的MariaDB配置:


sudo vi /etc/my.cnf.d/server.cnf

[mysqld]行下面插入以下行:


# Bugzilla
# Allow packets up to 16M
max_allowed_packet=16M
# Allow small words in full-text indexes
ft_min_word_len=2

保存和退出:

 
:wq

 
!

重新启动MariaDB以加载新设置:


sudo systemctl restart mariadb.service

第4步:安装Bugzilla 5.0.4

从官方网站获取Bugzilla 5.0.4存档:


cd
wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-5.0.4.tar.gz

将归档文件解压缩到你首选的位置:


sudo tar -C /opt -zxvf bugzilla-5.0.4.tar.gz

为了方便未来的更新,你可以创建一个版本独立软链接,指向当前版本的NamedRange所在的目录:


sudo ln -s /opt/bugzilla-5.0.4 /var/www/html/bugzilla

在Bugzilla目录中使用一个Perl脚本来检查缺少的Perl模块:


sudo /var/www/html/bugzilla/checksetup.pl

通过运行这个Perl脚本,你会了解到机器上任何必需或可选的Perl模块的可用性。

你可以这种方式单独安装Perl模块:


sudo /usr/bin/perl /var/www/html/bugzilla/install-module.pl CGI

或者,尝试使用一个命令安装所有必需的和可选的Perl模块:


sudo /usr/bin/perl /var/www/html/bugzilla/install-module.pl --all

Perl模块的编译可能需要一些时间。

编译完成后,运行checksetup.pl脚本以确认结果,确保所有必需的Perl模块和DBD mysql Perl模块都已安装,稍后可以处理缺少的可选Perl模块。


sudo /var/www/html/bugzilla/checksetup.pl

接下来,将MySQL数据库信息添加到localconfig文件中:


sudo vi /var/www/html/bugzilla/localconfig

查找并编辑以下行,确保所有参数都使用正确的值,如下所示:


$webservergroup = 'apache';
$db_driver = 'mysql';
$db_host = 'localhost';
$db_name = 'bugzilla';
$db_user = 'bugzillauser';
$db_pass = 'yourpassword';

保存和退出:

 
:wq

 
!

对于第三次,运行checksetup.pl脚本初始化Bugzilla :


sudo /var/www/html/bugzilla/checksetup.pl

进程中,将要求你提供管理员的凭据:

  • 管理员地址的E-mail :admin@example.com
  • 管理员名称的真实:John Doe
  • 管理员密码:your-admin-password

为了允许Apache访问Bugzilla文件,你需要修改所有Bugzilla文件的所有权:


sudo chown -R apache:apache /opt/bugzilla-5.0.4

既然Apache还不知道Bugzilla,你需要为Bugzilla创建一个Apache虚拟主机,如下所示:


sudo vi /etc/httpd/conf.d/bugzilla.conf

填充文件:


<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/bugzilla/
ServerName bugzilla.example.com
ServerAlias www.bugzilla.example.com
<Directory /var/www/html/bugzilla/>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit FileInfo Indexes Options AuthConfig
</Directory>
ErrorLog /var/log/httpd/bugzilla.example.com-error_log
CustomLog /var/log/httpd/bugzilla.example.com-access_log common
</VirtualHost>

保存和退出:

 
:wq

 
!

重新启动Apache以加载新设置:


sudo systemctl restart httpd.service

步骤5:修改防火墙规则


sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

步骤6:测试并访问Bugzilla的安装

安装Bugzilla后,你可以使用Perl脚本来测试你的安装:


sudo /var/www/html/bugzilla/testserver.pl http://203.0.113.1

输出将类似于以下内容:


TEST-OK Webserver is running under group id in $webservergroup.
TEST-OK Got padlock picture.
TEST-OK Webserver is executing CGIs via mod_cgi.
TEST-OK Webserver is preventing fetch of http://203.0.113.1/localconfig.
TEST-OK GD version 2.68, libgd version 2.0.34; Major versions match.
TEST-OK GD library generated a good PNG image.
TEST-OK Chart library generated a good PNG image.
TEST-OK Template::Plugin::GD is installed.

最后,将你喜爱的网页浏览器指向http://203.0.113.1/以访问你的Bugzilla站点。

在Bugzilla Web界面上单击登录按钮,然后输入要登录的管理员凭据,然后你可以继续按照自己的意愿设置Bugzilla。

步骤7安装,并且配置Apache mod_perl module可选

为了在运行Perl脚本时提高Apache的性能,建议使Apache具有如下mod_perl模块:


sudo yum install mod_perl mod_perl-devel -y

你可以使用以下命令来确认安装:


apachectl -M | grep perl

结果为:

 
perl_module (shared)

 

在一个Apache配置文件中修改perl相关设置:


sudo vi /etc/httpd/conf.d/perl.conf

显示行号:

 
:set nu

 

取消注释第15行和第24行


PerlSwitches -w
PerlSwitches -T

在文件末尾添加一个新行:


PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl

保存和退出:

 
:wq

 
!

重新启动Apache以加载新配置:


sudo systemctl restart httpd.service

Zuoxiaojuan profile image