前言:今天终于搞定了bugzilla在apache下的配置,真是$%*(^*(! 唉~废话不说了,切入正题:
安装环境:
1. apache_2.0.61-win32-x86-no_ssl.msi (PS:为什么这个版本?因为这个版本据我发现兼容性最强……新出的版本很多应用不能部署)
2. ActivePerl-5.8.4.810-MSWin32-x86.msi (PS:新版本下某些模块可能找不到,推荐使用这个版本!)
3. bugzilla3.0.2 (最新的3.0.3出来了,但是刚好是在我下了3.0.2以后两天出来的……)
4. Mysql5.0.22
安装步骤
1. 把bugzilla解压缩后放到自己的目标位置,在我这里是C:\www\下面;
2.提前给bugzilla创建好数据库:
c:\mysql -u root -p Enter password:***** mysql>create database bugs; mysql>grant all on bugs.* to 'bugs'@'localhost' identified by 'bugs'; |
OK,搞定。注意,自己要改密码哦。我这里设置的密码是'bugs'。
3.安装ActivePerl,安装完成后,打开CMD,运行bugzilla目录下的checksetup.pl,这个操作会告诉你安装bugzilla所需要的所有的模块的安装情况。参考提示,增加新的ActivePerl的后台:
ppm repo add theory58S http://theoryx5.uwinnipeg.ca/ppms |
然后将theory58S这个后台调整到首位置:
ppm repo up theory58S |
运行个几次,知道看到theory58S处于【1】
4. 在刚才打开的CMD里面输入ppm ,再新开一个CMD运行checksetup.pl(方便观察哪些模块需要安装),然后开始安装模块,命令如下:
ppm>install DBI |
可以看到bugzilla有必须安装的模块和选装的模块,按照他们的名字依次install。
PS:一些朋友可能使用代理上网(像可怜的偶,公司的网必须通过代理,慢不说,而且屏蔽了N多网站,555),这时就需要设置代理,在环境变量里面增加如下:(别问我如何增加环境变量,BS你)
Variable name: http_proxy Variable path: http://edison:abcd@10.171.20.10:8080 |
确定以后,重新开一个CMD,这时proxy才能生效,注意自己的username和password哦,可别把我的抄上去了。我的密码?废话,当然不可能是真的,嘿嘿!
5. 按照checksetup.pl提示的模块依次安装后,再次运行checksetup.pl,看看还差什么不。如果必须安装的组件已经安装完毕,会提示你在bugzilla目录下产生一个localconfig的配置文件,那么,离胜利不远了~
6. 到bugzilla目录下打开localconfig文件,修改如下行:
$db_pass='bugs'; 这个是刚才创建的bugs用户的密码 $db_port=3306; 对应你机子上mysql的端口,也可以不改 $index_html=1; 这个可以生成html页面,可以不改 |
保存关闭后,再次运行checksetup.pl,如果成功,会看到开始创建bugzilla的数据库。
OK,到了最让人BS的地方了,本人就是在这里费了N长时间,郁闷啊~
bugzilla在apache下的安装方式有两种,一种是使用CGI模式,一种是用per_mod,前者配置比较麻烦,后者配置简单,但是据说很占系统资源,没有亲试。
一 使用CGI方式配置:
1. 打开apche的http.conf文件,找到
#AddHandler cgi-script .cgi |
将其前面的#号去掉,表示apache会处理cgi的脚本文件
2. 在http.conf文件末尾添加如下内容:
Alias /bugzilla "C:\www\bugzilla-3.0.2" <Directory "C:\www\bugzilla-3.0.2"> Options +Indexes +ExecCGI +FollowSymLinks DirectoryIndex index.cgi index.html index.html.var AllowOverride Limit Order allow,deny Allow from all ScriptInterpreterSource Registry-Strict </Directory> |
重新启动apche!
PS:注意到ScriptInterpreterSource Registry-Strict这一行,这一行本来是注册CGI文件到注册表去,然而实际上没起作用! 我试过手工添加
HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command修改默认值为%perl的安装路径%\bin\perl.exe -T
但是实际上在登录http://localhost/bugzilla/时,还是会出现500错误!!!!!
查error.log可以发现原来系统还是没有执行.cgi文件!
怎么办呢?——直接改.cgi文件!!!!!这个方法是在我历经千辛万苦之后终于发现的……我的个神啊!这样的问题最让人郁闷啊!
3. 下个文件批量修改工具吧!把bugzilla文件夹下所有的.cgi文件中开头的
#!usr/bin/perl -wT |
改成
#!C:\Perl\bin\perl -wT |
即你机子上perl.exe的位置!!!
好了,这次再登录http://localhost/bugzilla,看到那只恶心的蚂蚁了吧?
二 使用mod_perl
在下载安装模块时,如果下载了mod_perl,会提示你文件放置的位置,选则到apache的module文件夹下。
1. 打开apache的http.conf文件,增加:
LoadFile "C:\perl\bin\perl58.dll" |
PS:这部分我自己没做通,头大了,apache竟然提示说找不到mod_perl.so!OMG!这里是从别的地方摘抄来的资料。
不做了,有兴趣的朋友如果做通了请留言,让偶也学习学习~
OK,大功告成,来嘴个吧?