在软件开发与项目管理的流程中,一个高效、可靠的缺陷跟踪系统是确保产品质量和团队协作效率的关键,Bugzilla 作为一款历史悠久且功能强大的开源缺陷跟踪系统,被全球众多开发团队所青睐,它提供了全面的缺陷报告、追踪、管理和分析功能,而 CentOS 7 以其卓越的稳定性、安全性和长期支持,成为部署服务器端应用的理想操作系统平台,本文将详细介绍如何在 CentOS 7 环境下,从零开始安装和配置 Bugzilla,为您的团队构建一个坚实的项目管理基石。
准备工作与环境要求
在开始安装 Bugzilla 之前,确保您的系统已经满足以下基本条件,一个干净、最小化安装的 CentOS 7 系统是最佳起点,您需要拥有 root 权限或通过 sudo 执行管理命令。
Bugzilla 的运行依赖于一系列组件,主要包括 Web 服务器、数据库服务器和 Perl 环境,以下是核心依赖项的详细说明:
组件类别 | 推荐软件 | 用途说明 |
---|---|---|
Web 服务器 | Apache (httpd) | 负责接收和响应用户的 HTTP 请求,提供 Bugzilla 的 Web 访问入口。 |
数据库服务器 | MariaDB / MySQL | 用于存储所有缺陷数据、用户信息、项目配置等核心数据,MariaDB 是 MySQL 的一个分支,与 CentOS 7 兼容性更好。 |
脚本语言 | Perl (5.10+) | Bugzilla 本身由 Perl 语言编写,因此系统必须安装 Perl 及其大量模块。 |
其他工具 | GCC, make, wget 等 | 用于编译和安装部分 Perl 模块,以及下载 Bugzilla 源码包。 |
安装与配置步骤
整个安装过程可以分为几个关键步骤,请按照以下顺序仔细操作。
安装基础仓库与软件包
为了方便安装后续所需的软件包,建议启用 EPEL (Extra Packages for Enterprise Linux) 仓库,使用 yum
命令安装 Apache、MariaDB 以及一些必要的编译工具。
sudo yum install -y epel-release sudo yum install -y httpd mariadb-server mariadb gcc gcc-c++ wget
启动并配置服务
安装完成后,需要启动 Apache 和 MariaDB 服务,并设置它们为开机自启。
sudo systemctl start httpd sudo systemctl enable httpd sudo systemctl start mariadb sudo systemctl enable mariadb
运行 MariaDB 的安全安装脚本,此脚本将引导您设置数据库 root 密码、移除匿名用户、禁止远程 root 登录等,极大地提升了数据库的安全性。
sudo mysql_secure_installation
按照提示完成设置,建议对所有安全选项选择 “Yes”。
创建 Bugzilla 数据库
登录到 MariaDB,为 Bugzilla 创建一个专用的数据库和用户,这是一种良好的安全实践,可以避免 Bugzilla 直接使用数据库的 root 权限。
mysql -u root -p
在 MariaDB 命令行中执行以下 SQL 语句,请将 'your_strong_password'
替换为一个您自己设定的强密码。
CREATE DATABASE bugzilla CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'bugzilla_user'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON bugzilla.* TO 'bugzilla_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
下载并部署 Bugzilla
从 Bugzilla 官网下载最新稳定版的源码包,本文以 Bugzilla 5.0.6 为例,您可以在官网查找最新版本的下载链接。
cd /tmp wget https://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-5.0.6.tar.gz tar -xvf bugzilla-5.0.6.tar.gz sudo mv bugzilla-5.0.6 /var/www/html/bugzilla
安装 Perl 依赖模块
这是安装过程中最复杂也最关键的一步,Bugzilla 依赖大量的 Perl 模块,幸运的是,Bugzilla 提供了一个检查脚本 checksetup.pl
。
进入 Bugzilla 目录并运行检查脚本,它会列出所有缺失的模块。
cd /var/www/html/bugzilla sudo ./checksetup.pl --check-modules
脚本会生成一个报告,并给出安装建议,对于缺失的模块,最推荐的方式是使用 yum
安装,因为这样可以更好地与系统集成,安装 DBD::mysql
模块:
sudo yum install -y perl-DBD-MySQL
对于 yum
仓库中不存在的模块,可以使用 CPAN (Comprehensive Perl Archive Network) 来安装。
sudo perl -MCPAN -e install 'Module::Name'
重复运行 ./checksetup.pl --check-modules
,直到所有必需模块都已安装。
配置 Bugzilla
所有依赖模块安装完毕后,运行 checksetup.pl
,首次运行时,它会生成一个名为 localconfig
的配置文件。
sudo ./checksetup.pl
使用文本编辑器打开 localconfig
文件,修改其中的数据库连接信息。
sudo vi localconfig
找到并修改以下几行,填入您之前创建的数据库信息:
$db_name = 'bugzilla'; $db_user = 'bugzilla_user'; $db_pass = 'your_strong_password';
保存并退出后,再次运行 checksetup.pl
,这次,脚本会连接数据库,创建所需的数据表,并提示您创建 Bugzilla 的管理员账户。
sudo ./checksetup.pl
按照提示输入管理员的邮箱地址、真实姓名和密码。
配置 Apache 以支持 CGI
为了让 Apache 能够正确处理 Bugzilla 的 CGI 脚本,需要为其创建一个配置文件。
sudo vi /etc/httpd/conf.d/bugzilla.conf
在文件中添加以下内容:
<Directory /var/www/html/bugzilla> AddHandler cgi-script .cgi Options +Indexes +ExecCGI DirectoryIndex index.cgi index.html Require all granted </Directory>
保存文件后,重启 Apache 服务以使配置生效。
sudo systemctl restart httpd
如果您的系统启用了防火墙(firewalld),请确保开放 HTTP 服务。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
访问与初步使用
至此,Bugzilla 的安装和配置已全部完成,您可以通过浏览器访问 http://your_server_ip/bugzilla
,您将看到 Bugzilla 的登录页面,使用之前创建的管理员账户登录即可。
登录后,您可以开始进行初步的设置,例如创建新的“产品”(Product)、定义“组件”(Component)、设置“版本”(Version)和“里程碑”(Milestone)等,这些是组织和管理缺陷的基础,之后,您就可以邀请团队成员注册账户,并开始提交、分配和跟踪缺陷了。
相关问答FAQs
问题1:安装过程中,checksetup.pl
提示缺少大量 Perl 模块,该如何高效解决?
解答: 这是一个常见问题,解决方法是分步进行,运行 ./checksetup.pl --check-modules
,它会列出所有缺失的模块,并标注哪些是必需的(REQUIRED),哪些是可选的(OPTIONAL),优先处理必需模块,对于每个缺失的模块,先尝试使用 yum
安装,命令格式通常是 sudo yum install perl-ModuleName
(perl-DBD-MySQL
)。yum
会自动处理依赖关系,是首选方案。yum
仓库中没有该模块,再使用 cpan
命令安装,格式为 sudo perl -MCPAN -e 'install Module::Name'
,重复运行 checksetup.pl
直到所有必需模块满足要求。
问题2:在 CentOS 7 的防火墙(firewalld)中,需要开放哪些端口才能访问 Bugzilla?
解答: Bugzilla 是一个 Web 应用,通过 HTTP 或 HTTPS 协议提供服务,您需要在 firewalld 中开放相应的服务端口,标准的 HTTP 端口是 80,HTTPS 端口是 443,最简单的方法是直接开放服务,而不是端口号,这样更规范,执行以下命令即可:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
第一条命令永久开放 HTTP 服务,第二条开放 HTTPS 服务(如果未来配置了 SSL 证书),第三条命令重新加载防火墙配置使其立即生效,执行完毕后,外部用户就可以通过浏览器访问您的 Bugzilla 服务器了。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复