在Cent OS上安装Bugzilla

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 这几天一直在折腾Bugzilla,原以为应该挺简单的,却也是一波三折。下面是“被虐”的过程: 一、下载 由于不太习惯Linux的命令行下载方式,就先在本地的下载了当前最新的稳定版本Bugzilla3.6.1 ,然后通过scp上传到服务器上。

这几天一直在折腾Bugzilla,原以为应该挺简单的,却也是一波三折。下面是“被虐”的过程:

一、下载

由于不太习惯Linux的命令行下载方式,就先在本地的下载了当前最新的稳定版本Bugzilla3.6.1 ,然后通过scp上传到服务器上。解压至/usr/local/bugzilla。同时

在/var/www/html目录中创建一个symbolic link:

# ln -s /var/local/bugzilla bugzilla

为httpd的用户分配该文件夹的访问权限

# chown apache.apache -R bugzilla

 

二、安装和配置

     注:以下操作都在root权限下完成。

     完成解压后,自然就按照官网上的指南 (以下称指南 ),一步步开始安装。

     1、之前Perl、MySQL、Apache Httpd都已经安装,并且版本符合要求。不过为了安全期间,还是运行了一下

     # yum install perl

     果真还是有不少内容更新。

     2、切换到/var/www/html/bugzilla下,检查环境配置:

     # ./checksetup.pl --check-modules

     很多没有安装的模块都列了出来,指南上说可以用下面的命令安装缺少的模块:

     # perl install-module.pl <modulename>

     但是运行上条命令是给出了更加简便的方式:

     # ./install-module.pl --all

     然后运行

     # ./checksetup.pl

     注意这次没有后面的--check-modules选项,至此一切还都是按照指南上的说明顺利进行。可是接下来就踏上了痛苦“旅程”。

     上面命令的运行结果并没有产生localconfig文件,而是提示有些模块仍然没有安装,尤其是DBD::mysql,还有几个可选的模块,GD、Chart、GDGraph等。当时就想,单独安装一下试试,于是:

      # ./install-module.pl GD

      没有成功,错误:

      Can't call method "cpan_version" on an undefined value at /usr/local/bugzilla/Bugzilla/Install/CPAN.pm line 96.

      第一反应当然就是去Google,可是搜到的结果只有区区四条,还有两个是一个页面。难道这个问题只有我碰到?难道别人都那么顺利?

把看起来关联程度最高的读完了,终于发现了一句话说是可能需要把之前的cpan删了,重新安装。有解决方案就行,试一下。就到root下面把.cpan目录删了。殊不知这下麻烦可大了。然后再次运行命令安装,从输出信息中看到需要安装cpan,可是死活连不上默认的两个ftp服务器,一直提示Connection:refused 。可是两个ftp在pc上访问都没有问题,顿时着急上火。怎么办?还是采用笨方法,先下载到本地,然后按照目录复制过去。实施起来才知道,这个想法太幼稚,cpan的目录结构虽然不太复杂,但是光下载文件,也要不断的时间,这个时间我可浪费不起。纠结呀!!

       (总不能在一棵树上吊死吧,还有Mantis可以用,转投Mantis,还真是好用,很快就装好了。虽然也有一点小插曲,是因为自己没有看清楚说明,填错了数据库的用户名密码。)

        一天后,心里还是不服,真的只能这样了吗?不行,继续来。既然这个办法不行,看看是不是因为代理的问题。于是就找系统可以设置代理的地方,无功而返。那就沉下心来(唉,知名的弱点,有时候太心急)研究下cpan吧,原来可以直接设置代理。以前都是直接跳过了。

       # cpan

       cpan> o conf init

       提示是否需要手动配置时,直接回车,默认是yes。中间略过n多选项,到了ftp_proxy和http_proxy按照本地pc上的配置填写。最后一步步过去。退出cpan,重新开始安装。看起来好像有效果,可是连接proxy一直超时。看来是因为防火墙的原因,ftp出不去,那么看看有没有使用http的协议镜像,还真找到了http://www.perl.org/CPAN/ (如此明显的地址,看来是我以前的方向错了。)

      重启配置cpan,去掉ftp_proxy和http_proxy的值,在最后一项提示输入另外一个URL时,将上面地址填入。终于解决了CPAN重新安装的问题。

 

      这次没有安装DBD::mysql,而是尝试了GD,

      # ./install-module.pl GD

      得到了另外一个错误:

      Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.

      检查发现libgd已经安装,并且版本符合要求,有人说是因为gdlib-config不存在,于是下载gd ,然后编译,将产生的gdlib-config复制到/usr/bin/下面,并且添加权限:

      # ./config

      # cp gdlib-config /usr/bin

      # chmod 774 gdlib-config

 

      再次安装,这次错误有了变化:

      GD.xs:7:16: error: gd.h: No such file or directory
      GD.xs:8:21: error: gdfontg.h: No such file or directory

      这个是因为只安装了gd,还需要安装gd-devel包:

      # yum install gd-devel

      然后GD顺利完成。

 

      接下来安装DBD::mysql,这次出现了的错误和上面的类似:

      In file included from dbdimp.c:20:
      dbdimp.h:22:49: error: mysql.h: No such file or directory
      dbdimp.h:23:45: error: mysqld_error.h: No such file or directory

      那就重新安装mysql和mysql-devel

      # yum install mysql mysql-devel

      DBD::mysql完成安装。

 

      一切都安装完毕了,再次运行checksetup.pl,生成了localconfig。下面就按照指南开始配置:mysql和apache。数据库的配置很简单,顺利完成。

      Apache的配置,指南中提供了两种方式,一个是cgi运行,一个mod_perl。我想既然安装那么多perl相关的东西,那就用后者吧。(不知道我是不是对指南的理解有误?)在/etc/httpd/conf.d/perl.conf中添加了:

     PerlSwitches -I/var/www/html/bugzilla -I/var/www/html/bugzilla/lib -w -T PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl

     看起来一切都完成了。那就重启httpd服务吧。

     # service httpd restart

     启动时发生错误:

     Can't locate Template/Config.pm

     除了上面信息以外,还有几个的类似的。解决方法比较简单,使用cpan重新安装即可。

     # cpan Template 

     有时候运行下面的命令,再用cpan运行一次:

     # ./install-module.pl <modulename>

     经过几次反复,终于启动了httpd服务。在浏览器看到了Bugzilla的尊容,可是还没有来得及高兴,发现输入用户名和密码后不能登陆,提示500 Internal Error。赶紧查看apache的error_log,发现里面还有一个:

     Can't locate Digest/SHA.pm in @INC (@INC contains: . lib /var/www/html/bugzilla

      还是采用上面的方法,安装缺少的Digest。

     安装成功,还是提交不成功,仍然是500 Internal Error。仔细观察地址栏中的地址,显示的是index.cgi,不是采用perl方式吗,难道还要用CGI??(恳请高手指点!)

     看来还要打开CGI。没办法,就先把perl.conf中那两行注释掉。再编辑/etc/httpd/conf/httpd.conf:

     将下面这行前面的注释去掉:

     AddHandler cgi-script .cgi

     然后,添加下面内容:

     <Directory /var/www/html/bugzilla> Options Indexes FollowSymLinks ExecCGI AllowOverride Limit DirectoryIndex index.cgi index.html Order allow,deny Allow from all </Directory>

 

     重新启动httpd服务,bugzilla终于可以正常使用了。

 

三、后记

     按说我应该珍惜这来之不易的劳动成果,可是实在不习惯进去后还要自己搜索bug的做法(可能这就是先入为主吧,因为之前使用近三年的mantis),同时也习惯bug的管理方式,感觉有点乱。

     我相信是我自己没有把功能开发出来,希望有这方面的经验的同学来交流,先谢谢了!

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
119 64
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
60 4
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
110 1
Linux系统之Centos7安装cockpit图形管理界面
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
102 3
|
2月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
152 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
93 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
148 2