如何在CentOS 7上安装Bugzilla 5.0

这个HowTo将引导您在CentOS 7上安装Bugzilla 5.0。Bugzilla是由Mozilla基金会(开发着名的Firefox浏览器的组织)开发的高级错误跟踪系统。 Bugzilla允许您跟踪应用程序中的缺陷和代码更改,从而轻松地在开发人员团队中进行沟通,并提交并查看修补程序。

CentOS的先决条件

网络连接

您应该有一个最小的CentOS 7安装,最新的更新和IP地址和主机名设置。 您的机器应该能够到达互联网。 如果您无法直接访问互联网,并且必须使用代理服务器,则应通过编辑/etc/yum.conf将yum配置为使用代理。 添加以下行(将它们更改为您的需要):

#代理服务器 - 代理服务器:端口
proxy = http://192.168.178.1:8080
#yum连接的帐户详细信息
#proxy_username = yum-user
#proxy_password = qwerty


当我们使用需要互联网访问的命令行工具,并且您在代理服务器后面时,请确保在使用需要Internet连接的命令之前始终执行以下两个命令:

导出http_proxy = http://192.168.178.1:8080 /
export https_proxy = http://192.168.178.1:8080 /


使用这种方法,即使您是代理服务器,您也可以使用此方法。

SELinux

安全增强的Linux(SELinux)是在内核中实现的强制访问控制(MAC)安全机制。 这是一个很好的安全机制,但它将破坏Bugzilla,直到官方的Bugzilla 5.0 rpm包发布,也将配置SELinux。 所以在这一点上我们将SELinux设置为允许模式。 在此模式下,SELinux已启用,但不会执行安全策略。

禁用SELinux

执行以下命令将SELinux模式从强制更改为允许。

sudo sed -i的/ ^ SELINUX =执行$ / SELINUX = permissive / g'/ etc / selinux / config


该文件现在应该如下所示:

#此文件控制系统上SELinux的状态。
#SELINUX =可以使用以下三个值之一:
#enforcecing - 执行SELinux安全策略。
#permissive - SELinux打印警告而不是强制执行。
#disabled - 没有加载SELinux策略。
SELINUX =允许
#SELINUXTYPE =可以使用三个两个值之一:
#针对性 - 目标进程受到保护,
#minimum - 修改目标政策。 只有选定的进程受到保护。
#mls - 多级安全防护。
SELINUXTYPE =有针对性


之后,重新启动机器。

帐号用于安装

如果没有明确说明,则本操作中的所有命令都将作为CentOS 7机器上的管理用户的用户“ 安装程序 ”执行,并允许使用“ sudo ”执行命令。

附加存储库

我们将需要许多不在官方CentOS存储库中的软件包,因此我们在CentOS框中启用了一个额外的存储库。

启用Epel存储库

执行以下命令以启用epel存储库。

sudo yum安装deltarpm epel-release
sudo yum更新


信息:从epel存储库安装第一个包时,您必须接受epel GPG密钥。

使用mod_ssl和mod_perl安装Apache

sudo yum install httpd httpd-devel mod_ssl mod_ssl mod_perl mod_perl-devel


这将安装Apache,mod_ssl,mod_perl和wget与所有所需的依赖关系。

启用并启动httpd.service

CentOS 7使用systemd,所以我们将启用和启动Apache的'systemd方式'。

启动httpd.service

sudo systemctl启动httpd.service

检查httpd.service的状态

sudo systemctl status httpd.service


该命令应该告诉你,httpd.service正在运行(有些行被删除)

httpd.service - Apache HTTP Server
加载:加载(/usr/lib/systemd/system/httpd.service; disabled)
活跃:活跃(运行)自Tue 2015-08-04 11:18:03 CEST; 6s前
主PID:11930(/ usr / sbin / httpd)
...

永久启用httpd.service

验证以上输出后,我们启用httpd.service进行自动启动:

sudo systemctl启用httpd.service


系统将自动创建一个符号链接,使http.service能够自动启动。

在本地防火墙中打开端口80以允许HTTP请求

CentOS 7正在使用FirewallD,因此我们必须使用firewall-cmd更改防火墙设置,以允许端口80(HTTP)上的传入连接。

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

测试Apache Web服务器

使用浏览器打开http:// ip-of-your-server /(使用您的服务器的IP地址替换ip-of-your-server)。 你应该看到Apache测试页面。 - Apache正在工作!

安装MariaDB

CentOS 7自带的是MariaDB,而不是MySQL。 MariaDB是一个与MySQL相当的开放源代码。 要安装MariaDB,请执行以下命令:

sudo yum install mariadb-server mariadb mariadb-devel php-mysql

在启动时使MariaDB自动启动

要在启动时自动启动MariaDB,我们将其设置为与httpd.service相同的方式。 执行以下三个命令启动,检查状态并启用MariaDB作为永久服务:

sudo systemctl启动mariadb.service
sudo systemctl status mariadb.service
sudo systemctl启用mariadb.service

设置MariaDB root密码

通过执行以下命令,在您的MariaDB服务器中打开一个SQL提示:

mysql -u root


您应该登陆MariaDB提示符。 在以下命令中,必须将myrootpassword替换为您要用于MariaDB root用户的密码!

MariaDB [(none)]> SET PASSWORD FOR'root'@'localhost'= PASSWORD('myrootpassword');
查询OK,0行受影响(0.00秒)
MariaDB [(none)]> \ q
再见


现在尝试,如果您可以使用root用户登录

mysql -u root -p
输入密码:myrootpassword
欢迎来到MariaDB监视器。 命令以; 或\ g。
您的MariaDB连接ID为5
服务器版本:5.5.41-MariaDB MariaDB Server
版权所有(c)2000,2014,Oracle,MariaDB Corporation Ab等。
输入'help;' 或'\ h'寻求帮助。 键入'\ c'以清除当前的输入语句。
MariaDB [(none)]> \ q
再见

为MariaDB设置max_allowed_pa​​ckets

Bugzilla需要在MariaDB中配置的最小大小“max_allowed_pa​​cket”。 所以我们更改通用的MariaDB配置,将'max_allowed_pa​​cket'的大小设置为4 MBytes。
用你的编辑器打开'/etc/my.cnf',并在'[mysqld]'部分下面添加以下行:

#Bugzilla
#附件上传的最大允许大小
如果你需要更多的话可以更改!
max_allowed_pa​​cket = 4M


之后,整个'my.cnf'看起来像这样:

[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
#建议禁用符号链接以防止出现各种安全隐患
symbolic-links = 0
当使用systemd时,#设置用户和组将被忽略。
#如果您需要在不同的用户或组下运行mysqld,
#根据mariadb自定义你的systemd单位文件
http://fedoraproject.org/wiki/Systemd中的#个说明

#Bugzilla
#附件上传的最大允许大小
如果你需要更多的话可以更改!
max_allowed_pa​​cket = 4M

[mysqld_safe]
log-error = / var / log / mariadb / mariadb.log
pid-file = / var / run / mariadb / mariadb.pid


#包含config目录下的所有文件

!includedir /etc/my.cnf.d


这些更改将在重新启动MariaDB后生效。

sudo systemctl restart mariadb.service

附加包

Bugzilla需要大量的附加软件包,主要是perl相关的,使perl模块工作的一些先决条件,以及能够下载和安装perl模块的设置。 因此我们安装所有必要的依赖项。 我们也确保,我们

不要安装perl-homedir软件包,因为这会破坏Bugzilla的安装。

('perl-homedir'将在用户文件夹中安装perl模块,这些Bug不能被Bugzilla访问,所以绝对不要安装!)

以下命令将确保未安装perl-homedir,并将安装其他必需的软件包:

sudo yum install gcc gcc-c ++ graphviz graphviz-devel patchutils gd gd-devel wget perl * -x perl-homedir


将安装约1300个包裹!

安装Bugzilla

现在我们已经准备好了所有的准备工作,我们准备下载最新的Bugzilla,为它创建数据库并做一些最终的设置。

为Bugzilla创建数据库

要在我们的MariaDB服务器上为Bugzilla创建数据库,我们必须再次打开MariaDB根提示符:

mysql -u root -p
输入密码:myrootpassword

欢迎来到MariaDB监视器。 命令以; 或\ g。
您的MariaDB连接ID为5
服务器版本:5.5.41-MariaDB MariaDB Server
版权所有(c)2000,2014,Oracle,MariaDB Corporation Ab等。
输入'help;' 或'\ h'寻求帮助。 键入'\ c'以清除当前的输入语句。


在MariaDB根提示符下输入以下命令来创建数据库的“错误”,并允许用户的错误完全访问它。 (请将“bugsuserpassword”更改为您的密码!)

MariaDB [(none)]>创建数据库错误;
查询确定,1行受影响(0.00秒)
MariaDB [(none)]>授予所有的错误* *由“bugsuserpassword”标识的本地主机的错误;
查询OK,0行受影响(0.00秒)
MariaDB [(none)]> \ q
再见

下载并提取Bugzilla

虽然有不同的选项来获取BugZilla,我们使用wget下载tarball我们要得到稳定版本(5.0)。

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


下载完成后,我们提取存档:

tar -xzvf bugzilla-5.0.tar.gz

将Bugzilla文件夹复制到webserver文件夹

现在让我们使用以下命令将提取的文件夹(bugzilla-5.0)复制到目标场景(/ var / www / html / bugzilla)

cd
sudo cp -R ./bugzilla-5.0/ /var/www/html/bugzilla/

使用Bugzilla的安装脚本进行最终设置

以下命令必须作为root用户执行,因此我们使用以下命令打开根shell:

sudo su
[root @ localhost installer]#


我们的提示现在已经结束了'#',这意味着我们是根。 现在请注意所有命令! 现在,howto将始终显示提示告诉你,你应该是root来执行命令!

现在(以root用户身份),我们更改为bugzilla所在的webserver文件夹

[root @ localhost installer]#cd / var / www / html / bugzilla
[root @ localhost bugzilla]#


现在执行以下命令让Bugzilla安装脚本检查我们设置的状态

[root @ localhost bugzilla]#./checksetup.pl


通常,上述命令的输出将告诉我们,我们的安装(可选和必需的)中缺少一些perl模块,我们必须至少安装必需的模块才能继续。 您当然可以通过手动执行安装脚本将显示的命令来安装所有必需(如果您喜欢)可选模块,但是使用该命令,您将一次安装所有必需的perl模块(必需和可选)。 所以我们来执行它:

[root @ localhost bugzilla]#/ usr / bin / perl install-module.pl --all


安装脚本现在将设置一个临时CPAN配置,并尝试安装Bugzilla所需的所有Perl模块(必需和可选)。 在此过程中只会出现一些小小的警告。

最后,我们再次通过执行checksetup.pl来验证安装的状态

[root @ localhost bugzilla]#./checksetup.pl


除了一个模块(DBD-Oracle(v1.19),没有找到),所有依赖项都应该可以了,这是可以的,因为这个模块只有在找到一个我们没有的工作的Oracle安装时才会安装!

安装脚本现在将显示以下文本:

阅读./localconfig ...

这个版本的Bugzilla包含一些您可能想要的变量
改变并适应您的本地设置。 以下变量是
自从你上次运行checksetup.pl以来,新到./localconfig:

create_htaccess,webservergroup,use_suexec,db_driver,db_host,
db_name,db_user,db_pass,db_port,db_sock,db_check,
db_mysql_ssl_ca_file,db_mysql_ssl_ca_path,db_mysql_ssl_client_cert,
db_mysql_ssl_client_key,index_html,interdiffbin,diffpath,
site_wide_secret

请编辑文件./localconfig,然后重新运行checksetup.pl
完成安装。


所以如上所述,我们用我们的编辑器打开./localconfig,并将其改为我们的需要。 这是我使用的(注释删除),确保你更改数据库的名称和密码,以满足您的需要!

$ create_htaccess = 1;
$ webservergroup ='apache';
$ use_suexec = 0;
$ db_driver ='mysql';
$ db_host ='localhost';
$ db_name ='bugs';
$ db_user ='bugs';
$ db_pass ='bugsuserpassword';
$ db_port = 0;
$ db_sock ='';
$ db_check = 1;
$ db_mysql_ssl_ca_file ='';
$ db_mysql_ssl_ca_path ='';
$ db_mysql_ssl_client_cert ='';
$ db_mysql_ssl_client_key ='';
$ index_html = 0;
$ interdiffbin ='/ bin / interdiff';
$ diffpath ='/ bin';
$ site_wide_secret ='ifKuihguW8nlxLcxeNU4whHzFbxDIGWSvtR6S7Ul38cFQn004YDcVzuBJfnF8M9X';


现在让我们再次运行安装脚本。 现在应该检测正确的数据库配置,并开始访问MariaDB服务器进行最终设置。

[root @ localhost bugzilla]#./checksetup.pl


输出(部分线条剥离)

...
...
添加新表bz_schema ...
初始化bz_schema ...
创建表...
将attach_data最大大小转换为100G ...
设置标准下拉列表的选项:
优先级bug_status rep_platform解决方案bug_severity op_sys
创建./data目录...
...
...
预编译模板...完成
修复文件权限...
初始化“依赖树更改”email_setting ...
初始化“产品/组件更改”email_setting ...
标记已关闭的错误状态
创建默认分类“未分类”...
设置外键...
设置默认状态工作流程...
创建默认组...
设置用户偏好设置...

看起来我们还没有管理员设置。 这就是
你第一次使用Bugzilla,或者你的管理员权限
可能会意外删除。

输入管理员的电子邮件地址:


现在按照提示并完成您的设置(在这里使用您的值作为答案):

输入管理员的电子邮件地址:youremail@yourdomain.tld
输入管理员的真实姓名:Der PCFreak
输入管理员帐户的密码:adminpassword
请重新输入密码以验证:adminpassword
youremail@yourdomain.tld现在设置为管理员。


当一切顺利的时候,你应该会看到:

创建初始虚拟产品'TestProduct'...

现在你已经安装了Bugzilla,你应该访问'参数'
页面(链接在管理员帐户的页脚中)以确保它
根据您的需要设置 - 这包括设置“urlbase”选项
正确的URL。
checksetup.pl完成。


在这一点上我们已经完成了。 执行以下行以注释掉Bugzilla安装脚本创建的.htaccess文件中的一行:

[root @ localhost bugzilla]#sed -i's / ^ Options -Indexes $ /#Options -Indexes / g'./.htaccess

配置Apache来托管我们的Bugzilla安装

Apache仍然不了解Bugzilla的任何内容。 所以让我们创建一个文件/etc/httpd/conf.d/bugzilla.conf,并提供以下内容来将我们的Bugzilla网站介绍给httpd.service。

#/etc/httpd/conf.d/bugzilla.conf
<VirtualHost *:80>

DocumentRoot /var/www/html/bugzilla/
</VirtualHost>
<Directory /var/www/html/bugzilla>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit FileInfo Indexes
</Directory>


创建文件后,我们重新启动Apache,使更改生效:

[root @ localhost bugzilla]#systemctl restart httpd.service

切换回普通用户

以root身份工作不再需要,如果您需要root权限,则可以使用sudo。 所以执行以下命令来退出根shell:

[root @ localhost bugzilla]#exit
[installer @ localhost〜] $

使用浏览器测试Bugzilla安装

使用浏览器打开http:// ip-of-your-server /(将ip-of-your-server替换为服务器的IP地址)。 您现在应该看到Bugzilla页面,而不是默认的Apache测试页面。
您现在可以使用您提供给Bugzilla安装脚本的凭据进行登录。 在这个如何做到这一点是:

电子邮件地址:youremail@yourdomain.tld
密码:adminpassword


Voila! 您现在已经在CentOS 7上安装了一个工作的Bugzilla 5.0安装。您现在可以继续在Bugzilla Web界面中设置Bugzilla的详细信息。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏