配置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的使用要求。
Bugzilla在apache下有两种运行方式:mod_cgi和mod_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各项参数。