配置bugzilla

胡浩瀚
2023-12-01

配置localconfig

再次运行checksetup.pl脚本,注意现在不再需要参数--check-modules

$perlchecksetup.pl

脚本会显示所有的模块都已经正确安装,并输出一个配置文件localconfig。此文件包含很多Bugzilla参数的默认设置。

在编辑器中打开localconfig,根据上面数据库安装创建的实际情况,更改文件中的参数。

$db_driver:数据库类型,如mysql/pg/oracle/sqlite

$db_pass:数据库用户密码;

如果Web服务器不在apache群组中运行,需要更改webservergroup的值,如apache更改为www-data

如果在没有root权限中运行,则webservergroup的值应该为空,并忽略checksetup运行时的告警信息。

更改情况如下例子:

$webservergroup='www-data';(根据apacheenvvars 中的设置更改,这里为www-data)

$db_driver= 'mysql';

$db_host= 'localhost';

$db_name= 'bugs';

$db_user= 'bugs';

$db_pass= 'bugs';

保存退出。

配置Bugzilla

再次运行脚本checksetup.pl,再次确认所有的模块都已经满足。同时开始编译UI模板,使用创建的bugs用户和密码连接到数据库,并创建数据库(如果之前未创建数据库,否则只创建数据库表)和数据库表。

然后会要求输入Bugzilla的管理员帐号(后续可以创建多个管理员帐号),也就是邮件地址,以及帐号密码。

到此即完成Bugzilla的配置,后面根据实际情况(比如修改localconfig)再次运行checksetup.pl脚本更新Bugzilla配置。

配置apache

检查Web服务器是否正确配置,可从Web服务器中访问testagent.cgi,如果显示OK,则表示配置成功。注意,需要确保敏感信息不被远程访问。可以运行testserver.pl脚本来检查Web服务器满足Bugzilla的使用要求。

Bugzillaapache下有两种运行方式:mod_cgimod_perl

  • mod_cgi配置

编辑/etc/apache2/httpd.conf文件,增加如下行:

<Directory/var/www/bugzilla>

AddHandlercgi-script .cgi

Options+Indexes +ExecCGI +FollowSymLinks

DirectoryIndexindex.cgi

AllowOverrideLimit FileInfo Indexes

</Directory>

允许apache运行bugzilla目录下的cgi文件,如果客户在浏览器中输入bugzilla目录名,则指示服务器查找index.cgi文件,并允许Bugzilla.htaccess文件覆写全局权限配置。

如果知道Web服务器以什么群组运行,则checksetup.pl脚本可以对Bugzilla的文件和目录设置更严格的权限。在httpd.conf文件中查找Group行,将该行发现的群组名称复制到localconfig文件的$webservergroup中,并重新运行checksetup.pl脚本。

如果Bugzilla并未放在webspace目录下,而是使用符号链接的方式链接到webspace目录,则需要在Bugzilla<Directory>指示符下的Options行添加选项:

+FollowSymLinks

如果没有此选项,则Apache不允许符号链接到它自己以外的目录结构,Bugzilla将不能正常运行。

修改完成后保存退出。

重启apache2,运行命令:

$sudo /etc/init.d/apache2 restart

  • mod_perl配置

编辑/etc/apache2/httpd.conf文件,添加如下行配置信息,注意替换成Web服务器的路径:

PerlSwitches-w -T

PerlConfigRequire/var/www/bugzilla/mod_perl.pl

2行用来替代mod_cgi方式配置的<Directory>指示块,同时必须放在httpd.conf文件中其他mod_perl指示符的上面,另外,还必须禁用httpd.conf配置文件中的KeepAlive

同样的,如果知道Web服务器以什么群组运行,则checksetup.pl脚本可以对Bugzilla的文件和目录设置更严格的权限。在httpd.conf文件中查找Group行,将该行发现的群组名称复制到localconfig文件的$webservergroup中,并重新运行checksetup.pl脚本。

保存退出。

重启apache2

$sudo /etc/init.d/apache2 restart

使用mod_perl时需要注意

  • mod_perl会占用大量的内存,每个httpd子进程需要30M内存,因此内存越大越好,mod_perl用内存来换取速度上的提升,至少需要2G的内存才能使用mod_perl.

  • mod_perl下,修改任何Bugzilla文件,都必须重启Apache才能生效,而不能只是重载文件。可以手工更改localconfig和参数配置文件params,因为这些文件在load网页时每次都会被重新读取。

  • 必须在Apache默认的PreforkMPM下运行,而不要在WorkerMPM下运行,后者将不能正常使用Bugzilla

  • Web服务器上应该只运行Bugzilla这个mod_perl程序,如果还有其他的mod_perl程序,可能由于存在冲突导致不能正常运行。

  • 建议在服务器中只有一个Bugzilla应用,而不要配置多个,多个没有很好的测试,不能保证运行没有问题。

至此,所有配置完成。

打开浏览器,输入:

http://<machine-ip>/bugzilla

即可打开Bugzilla主页,用配置时设置的管理员帐号和密码可以登录,开始设置Bugzilla各项参数。

 类似资料: