Bugzilla是一个开源的bug追踪和管理的系统, 因为Boss要开发一个公司内部使用的bug管理系统,功能要向Bugzilla靠近,而我以前还从没听过Bugzilla,所以花了时间把Bugzilla配置在本地体验了下,由于公司都是用wamp server,它集合了Apache、MySQL、php开发环境,虽然很方便,直接Windows傻瓜式的完成了环境搭建,但是也让我对这些程序如何配置不够了解,而且wamp是把三个程序集中在自己的安装目录下,导致Bugzilla安装配置出了些问题,在网上找了很多资料,但几乎没有我这种情况的,大多不是用wamp,还有的是用IIS的,而且有几个教程都是重复内容,只怕是复制粘贴过来的,只是对Bugzilla官方教程翻译一下而已,还好最后解决了,这里记录一下,看看对其他遇到这种情况的人有没有帮助吧。
1、安装wamp
这个没什么好说的,直接下一步就行了。
2、安装Bugzilla
下载Bugzilla的压缩包,随便解压到哪里,我是解压在wamp的网址根目录(c:\wamp\www)下。
3、安装activeperl
由于Bugzilla是开源的用Perl写的,所以需要安装activeperl,同样傻瓜式安装即可,注意:安装完成后它可能会自动添加路径到path中,也有可能不会,这时就需要自己添加了。
4、创建数据库
可以用sql命令行,也可以用PHPmyadmin,最好是创建bugs用户同时创建bugs数据库并赋予该数据库所有权限。
5、模块安装
打开命令提示符,进入Bugzilla安装目录,运行perl checksetup.pl,安装缺少的模块。
6、Bugzilla配置
运行上述命令后Bugzilla目录下应该会生成localconfig文件,用记事本打开并编辑:
#
# How to access the SQL database:
#
$db_host = "localhost"; # where is the database?
$db_port = 3306; # which port to use
$db_name = "bugs"; # name of the MySQL database
$db_user = "bugs"; # user to attach to the MySQL database
#
# Enter your database password here. It's normally advisable to specify
# a password for your bugzilla database user.
# If you use apostrophe (') or a backslash (\) in your password, you'll
# need to escape it by preceding it with a \ character. (\') or (\\)
#
$db_pass = 'sockmonkey';
7、windows系统的配置
Bugzilla是用perl写的,所以在网页运行Bugzilla时,需要指定解释器,因此需要修改windows的注册表,打开注册表添加如下:
HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command,设置值为:C:\Perl\bin\perl.exe -T (perl.exe所在路径加T参数)
8、wamp配置
Options FollowSymLinks
AllowOverride All
#
......
#
Options Indexes FollowSymLinks ExecCGI
#
......
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
#
# Tell Apache to use Perl to execute .cgi
#
ScriptInterpreterSource Registry-Strict
</Directory>
然后要在Apache的httpd.conf文件内增加index.cgi
DirectoryIndex index.html index.html.var index.cgi
最后重启Apache服务。
9、运行Bugzilla
10、总结
现在看来其实这些配置并不难,从官方教程都能找到,只是需要进行一些修改,主要是wamp的Apache和普通Apache下的不同,当时却被难住了,主要是之前都是安装wamp直接使用而不需要手动配置,真不知这样是好是坏,一方面这样确实很方便,另一方面却导致对原理、底层的东西不够了解,而要成为一个优秀程序员无疑需要对底层有足够的了解。