本文安装过程主要参考:
http://www.bugzilla.org/docs/3.6/en/html/installation.html
http://www.thegeekstuff.com/2010/05/install-bugzilla-on-linux/
安装流程:
1. 先检测下 Perl是否安装了$ perl -v
如果没有安装,下载安装
2. 安装一个数据库,推荐使用 MySQL$ mysql -V
如果没有安装的话,用 apt-get即可,server和client都装下。
在装 mysql-server的时候会提示输入 password,记住,再后面创建数据库的时候会用到。
3. 安装apache2apt-get install 即可。
测试apache2是否正常:
在浏览器的URL栏输入: http://localhost 或者 http://127.0.0.1;
只要出现: It works!
表示服务器已经正常启动。
4. 下载并安装 Bugzilla 下载 Bugzilla 3.6.1,地址:
http://www.bugzilla.org/download/下载后在 /var/www/目录下解压,然后进入目录
1)Perl 模块的安装
a)首先查看下缺少的模块
bash# ./checksetup.pl --check-modules
b)然后利用这个命令将所缺模块安装上
bash# perl install-module.pl <modulename>
必须安装的模块有这些:
1. CGI (3.21)
2. Date::Format (2.21)
3. DateTime (0.28)
4. DateTime::TimeZone (0.71)
5. DBI (1.41)
6. DBD::mysql (4.00) if using MySQL
7. Digest::SHA (any)
8. Email::Send (2.00)
9. Email::MIME (1.861)
10. Email::MIME::Encodings (1.313)
11. Email::MIME::Modifier (1.442)
12. Template (2.22)
13. URI (any)
如果未安装模块太多,可以执行下列命令,全体安装:
(注意:由于安装模块的时候会有权限问题,所以在执行下列命令前,
sudo chmod 777 -R bugzilla-3.6.1)
bash# /usr/bin/perl install-module.pl --all
(关于DateTime::TimeZone 模块安装失败的问题,请参考此网站的最后回复,Build)
http://www.experts-exchange.com/OS/Linux/Q_25111007.html需要自己下载DateTIme模块,然后重新编译,在解压目录 perl Build.PL,然后按照上面网站所说!!!
2)成功装完后,生成本地config
bash# ./checksetup.pl
bash# vi ./localconfig
修改: $db_pass = 'akaedu';
修改: $webservergroup = 'www-data';
保存退出
3)之后在mysql数据库中加入信息
bash# mysql -u root -p
(如果这里要输入密码一直过不去,请参考
http://hi.baidu.com/ever__love/blog/item/1c9b3c19cd0866f7af5133c7.html)
mysql> GRANT SELECT, INSERT,
UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*
TO bugs@localhost IDENTIFIED BY 'akaedu';
mysql> FLUSH PRIVILEGES;
mysql> quit;
mysql的命令必须都以分号结束。
4) 再次安装
bash# ./checksetup.pl
如果上述一切正常,这次安装过程中将提示你输入 邮箱,真名,密码。
邮箱是你登录bugzilla的root用户名,密码就是密码。
5. 配置apache的config,与bugzilla的index链接bash# vi /etc/apache2/apache2.conf
在内部添加这样一段:
<Directory /var/www/bugzilla-3.6.1>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
然后重启apache2
bash# /etc/init.d/apache2 restart
6. 到这里应该就能正常访问bugzilla的主页了URL: http://localhost/bugzilla (如果不行,就把bugzilla的版本号加上)
就会看到如下图像,表示正常登录bugzilla了。
大功告成
进入后,选一个 “File a bug”, 然后输入root用户名(邮箱)以及密码就正常登录,可以使用了。
目前遗留问题,无法注册普通用户,因为注册时候会发送确认信件,发送显示成功(没有报错),但目标信件收不到,不知是哪里出了问题。TODO!
上述邮件发送问题已经解决了!!!
解决方法:
感觉应该是 bugzilla的设置问题,在bugzilla网页上登录后,点击上端菜单中的
Administration, 然后选择 Parameters, 在左侧栏中选择E-mail,然后在 mail_delivery_method中选择 Test,虽然你点击了发送邮件,但会被bugzilla自己截获,存入 data/mailer.testfile文件中。如果发不出邮件,可以选择Test,在data/mailer.testfile文件中如果有信息,那 说明邮件服务器有问题,但如果此文件中没有信息,那就说明有别的问题。
我发送邮件显示正常,但目标收不到邮件,检查 data/mailer.testfile文件,发现是空的。之前用telnet smtp测试,能正常连通smtp.163.com,思来想去,应该就是bugzilla的设置问题。这个不成功的版本是在同时电脑上测试的,我自己的已 经成功,只不过过程中修改的东西太多,不知如何调试了。于是乎我就想到了diff,网页上的配置信息对应到源码中,就是 data/params文件,于是我将我的文件与我同事电脑上的这个文件进行了diff,其中有一项 use_mailer_queue。 不成功: 'use_mailer_queue' => '1', 成功的'use_mailer_queue' => 0, 于是将不成功的修改为 0,结果再尝试Test, data/mailer.testfile中已经有信息了,将 mail_delivery_method修改为SMTP,也能正常发送邮件了!