| ||
Bugzilla安装手册 | ||
| ||
| 版 本: | Bugzilla 3.2 |
| 操作系统: | Redhat Enterprise Linux 5 |
|
|
|
|
|
|
2009-01-22 |
1. 关于本手册
1.1 新版本
这个安装手册是针Bugzilla V3.2的。最新版本的手册可以在http://www.bugzilla.org/docs/上找到。
2. 安装Bugzilla
2.1 安装
Bugzilla一般安装在Linux或Solaris上。如果你打算安装在其他操作系统上,请搜索相关文档。在Windows上安装可以查看:http://www.itjj.net/softtest/tools/20080527/298651.html。
在安装前,请确定你拥有这台机器的管理员权限。
警告 安装过程可能会使你的机器不太安全,请确保防火墙已经启用。 |
安装过程如下:
1. 安装Perl(5.81或以上)
2. 安装数据库
3. 安装Web server
4. 安装Bugzilla
5. 安装Perl Modules
6. 安装MTA(sendmail 8.7或以上)
7. 配置以上所有
2.1.1 Perl
Any machine that doesn’t have Perl on it is a sad machine indeed. |
查看已安装的版本:
bash$ perl –v
如果你的机器上没有安装,可以访问http://www.perl.com。尽管Bugzilla运行在Perl 5.8.1上,最好安装一个最新的稳定版本。
2.1.2 数据库
Bugzilla支持MySQL、PostgreSQL和Oracle作为数据库服务器。可选择安装一个。
本手册中使用MySQL。
2.1.2.1 MySQL
查看已安装的版本:
bash$ mysql –v
如果你没有安装,可以访问http://www.mysql.com。下载MySQL 4.2或以上版本。
Note 很多二进制版本的MySQL把它们的数据文件存储在/var。然而在一些Unix系统上,这只是root分区的一小部分。对于你的bug数据库,空间可能会不够。要更改存储数据的目录,必须从源码重新编译,在configure时作为一个选项设置。 |
安装完成后,确定MySQL是否在系统启动时自动运行。
bash# checkconfig - -list | grep mysqld
如果运行级别为3、5的状态为off,执行如下命令:
bash# checkconfig - -level 35 mysqld on
2.1.3 Web Server
查看已经安装的版本,访问默认的欢迎界面:http://localhost/
本例中使用Apache Web Server,如果没有安装,访问http://apache.org/,下载1.3.x或2.x版本。
2.1.4 Bugzilla
访问http://www.bugzilla.org/download,下载3.2版本的Bugzilla。
解压文件后,将bugzilla-3.2重命名为bugzilla并移动到/var/www/html/目录下。
bash# tar –xzvf bugzilla-3.2.tar.gz
bash# mv –f ./bugzilla-3.2 /var/www/html/bugzilla
修改这个目录的属性,使webserver可以读写这个目录。
bash# chmod –R root:apache bugzilla
这只是完成了bugzilla的临时安装,在完成Perl Modules的安装后,执行checksetup.pl后才可以正常使用。
2.1.5 Perl Modules
Bugzilla的安装过程基于checksetup.pl脚本。它首先要检查你是否已经安装了必要的、合适版本的Perl模块。这一节的目的就是通过检查。这部分通过后,就可以进行2.2节部分了。
因此,你要切换到root用户,直到安装结束。检查必要模块、可选模块是否已经安装:
bash# ./checksetup.pl - -check-modules
checksetup.pl会打印出必要的、可选的模块列表,包括它们的版本号。下面是执行checksetup.pl后的部分结果:
* This is Bugzilla 3.2 on perl 5.8.8 * Running on Linux 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007
Checking perl modules... Checking for CGI.pm (v3.21) found v3.15 Checking for TimeDate (v2.21) not found Checking for PathTools (v0.84) ok: found v3.12 Checking for DBI (v1.41) ok: found v1.52 Checking for Template-Toolkit (v2.15) not found Checking for Email-Send (v2.00) not found Checking for Email-MIME (v1.861) not found Checking for Email-MIME-Modifier (v1.442) not found
Checking available perl DBD modules... Checking for DBD-Pg (v1.45) not found Checking for DBD-mysql (v4.00) found v3.0007 Checking for DBD-Oracle (v1.19) not found
The following Perl modules are optional: Checking for GD (v1.20) not found Checking for Chart (v1.0) not found |
检查结果 | 解释 |
ok | 已经安装且版本满足最低要求 |
found | 已经安装但版本较低,如:CGI.pm(v3.21) found v3.15 |
not found | 没有安装,required的模块必须安装;optional的模块可选择安装 |
表2.1-1 checksetup.pl检查结果
在Unix上安装Perl 模块的最好的方法是使用CPAN,在Windows上则使用PPM。下面的例子是使用CPAN安装,如果手动安装,请参考附录C。
bash# perl –MCPAN –e ‘install <modulename>’
附录A是rhel上的模块安装列表。该列表是按照安装顺序排列的。
2.2 配置
2.2.1 localconfig
再次执行checksetup.pl,不需要加参数。
bash# ./checksetup.pl
这次checksetup.pl会列出你已经正确安装的Perl模块及版本信息。还会生成一个localconfig文件。这里面包含bugzilla一些参数的默认设置。
用文本编辑器打开localconfig,需要修改$db_driver和$db_pass两个值。更改$db_driver为正确的数据库,如:mysql、Pg或oracle(本例中使用mysql)。修改$db_pass,为访问数据库创建一个密码。
Note 如果使用Oracle,则$db_driver应该为数据库的SID。 |
如果你的Web Server不是以“apache”组运行的,还应该修改webservergroup。
2.2.2 数据库
这一部分主要配置Bugzilla使用的数据库服务器。本例中使用的是MySQL。
2.2.2.1 MySQL
警告 MySQL的默认设置是很不安全的。后面章节中会有提高安全性的详细信息 |
2.2.2.1.1 全文索引
MySQL全文索引查询所用关键词最小长度默认4个字符。这样会使bugzilla的很多特殊词被忽略,如:cc、ftp和uri。
打开/et c/my.conf,按照如下修改:
[mysqld]
# Allow small words in full-text indexes
ft_min_word_len=2
参考这个文章重建索引:http://www.mysql.com/doc/en/Fulltext_Finetuning.html
2.2.2.1.2 添加用户
需要为bugzilla创建一个新的MySQL用户(让bugzilla使用root用户是很不安全的)。
下面的例子基于localconfig的默认设置。如果你更改过,需要在下面的SQL中做同样的修改。“$db_pass”要替换为localconfig中的值(本例中$db_pass=bugs)。
mysql> CREATE DATABASE bugs;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs IDENTIFIED by “bugs”;
mysql> FLUSH PRIVILEGES;
2.2.2.1.3 修改表大小限制
按照默认设置,MySQL会限制表大小不超过4GB。在MySQL命令行中输入以下进行修改,将$bugs_db修改为你的bugzilla数据库的名字。
mysql> use $bugs_db
mysql> ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=2000;
以上命令会将限制改为20GB。
2.2.3 checksetup.pl
接下来,重新运行checksetup.pl。它会编译UI模板,连接到数据库并创建数据库及表。
完成后,会请求你输入管理员帐号的信息。Bugzilla可以有多个管理员帐号(你可以在稍后进行创建),但是你需要有一个来开始。输入管理员的Email地址,他或她的全称,以及密码。
Checksetup.pl就执行完成了,你可以在任何时候重新执行它。
2.2.4 Web Server
2.2.4.1 Apache
2.2.4.1.1 Apache httpd的mod_cgi模式
为配置Apache web server,使Bugzilla可以使用mod_cgi模式:
1. 打开/etc/httpd/conf/httpd.conf
2. Apache使用<Directory>命令以允许细节的权限设置。添加如下几行,在这个例子中,Bugzilla安装在/var/www/html/bugzilla。
<Directory /var/www/html/bugzilla>
AddHandler cgi-script.cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
解释:允许apache运行在bugzilla目录发现的.cgi文件;如果在浏览器中只输入目录名称,会提示server查找index.cgi;allows Bugzilla’s .htaccess files to override global permissions。
3. checksetup.pl如果知道web server是以哪个组运行的,就可以设置Bugzilla的文件和目录的权限。在httpd.conf中找到Group一行,将这个值赋给localconfig中的$webservergroup变量,然后重新运行checksetup.pl。
4. 如果bugzilla并不是真正安装在/var/www/html/目录下,而只是一个符号链接,那么在Bugzilla的<Directory>中Options一行后面添加如下:
+FollowSymLinks
2.2.5 Bugzilla
经过以上配置,你的Bugzilla应该可以使用了。访问http://<your-bugzilla-server>/bugzilla,你可以看见bugzilla的首页,如果不能正常访问,参见附录B。
附录A.Perl Modules
注:
1. 在安装时,有些模块还依赖其他的模块,这里一并列出了,如果你需要的模块不包含在内,请根据提示信息,在http://search.cpan.org/上下载相应的模块。下面的模块实际上是下载后的tarball的名称,在搜索时将下面模块间的“-”替换为“::”。如:Template-Toolkit,在搜索时输入:Template::Toolkit。
2. 安装顺序如同序号
3. 安装DBD-mysql前,需要安装mysql的开发包
4. 除DBI和DBD-mysql模块的版本固定外,其他模块均可使用最新版本
No. | Modules | |
Required | Optional | |
1 | FCGI (0.67) | GD (2.41) |
2 | CGI (3.42) | Chart (2.4.1) |
3 | TimeDate (1.16) | Template-GD (2.66) |
4 | Template-Toolkit (2.20) | GDTextUtil (0.86) |
5 | Email-Address (1.889) | GDGraph (1.44) |
6 | Email-Simple (2.004) | XML-Parser (2.36) |
7 | Module-Pluggable (3.8) | XML-Twig (3.32) |
8 | Return-Value (1.302) | File-Temp (0.21) |
9 | Email-Send (2.194) | IO-stringy (2.110) |
10 | Email-MIME-ContentType (1.014) | MailTools (2.04) |
11 | Email-MIME-Encodings (1.311) | MIME-tools (5.427) |
12 | Pod-Escapes (1.04) | PatchReader (0.9.5) |
13 | Pod-Simple (3.07) | PerlMagick (6.40) 未安装成功 |
14 | Test-Pod (1.26) | Convert-ASN1 (0.22) |
15 | MIME-Types (1.26) | GSSAPI (0.26) |
16 | Email-MIME (1.861) | Authen::SASL (2.12) |
17 | Email-MessageID (1.400) | Text-Iconv (1.7) |
18 | Email-MIME-Modifier (1.442) | XML-NamespaceSupport (1.09) |
19 | DBI (1.50) | XML-SAX (0.96) |
20 | mysql-devel-5.0.22-2.1.0.1.i386.rpm | XML-SAX-Base (1.02) |
21 | DBD-mysql (4.00) | XML-Filter-BufferText (1.01) |
22 |
| XML-SAX-Writer (0.52) |
23 |
| perl-ldap (0.39) |
24 |
| Data-HexDump (0.02) |
25 |
| RadiusPerl (0.13) |
26 |
| HTML-Scrubber (0.08) |
27 |
| Email-MIME-Attachment-Stripper (1.315) |
28 |
| Email-Abstract (3.001) |
29 |
| Email-Data-Format (1.002) |
30 |
| Email-Simple-Creator (1.424) |
31 |
| Email-MIME-Creator (1.454) |
32 |
| Email-Reply (1.202) |
附录B.常见问题
1. 手动安装Perl模块时,如果提示<modulename> not found,说明依赖这个模块,须先安装这个模块。
2.
附录C.手动安装Perl Module
在http://search.cpan.org/上搜索并下载合适版本的模块。
切换到root用户后:
bash# tar –xzvf <module>.tar.gz
bash# cd <module>
bash# perl Makefile.PL
bash# make
bash# make test
bash# make install
术语表
词汇 | 解释 |
MTA | Mail Transfer Agent,邮件传送代理。在Unix/Linux上,最著名的MTA有sendmail、qmail等。 |
CPAN | Comprehensive Perl Archive Network,Perl综合典藏网;它包含了极多用Perl写成的软件和其文件。 CPAN亦是一个Perl程序的名字,其作用是让使用者容易从CPAN下载、安装、更新及管理其他在CPAN上的Perl程序。 CPAN的成功引来很多其他程式語言社群的模仿。CTAN(Comprehensive TeX Archive Network,TeX综合典藏网)和CSAN(Comprehensive Scheme Archive Network,Scheme综合典藏网)都参考了CPAN的命名方式。另外PEAR(PHP Extension and Application Repository)也是类似CPAN的PHP程序网站。 |
|
|
|
|