1. 程式人生 > >Bugzilla安裝配置(Rhel+Apache+MySQL)

Bugzilla安裝配置(Rhel+Apache+MySQL)

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.安裝Perl5.81或以上)

2.安裝資料庫

3.安裝Web server

4.安裝Bugzilla

5.安裝Perl Modules

6.安裝MTAsendmail 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支援MySQLPostgreSQLOracle作為資料庫伺服器。可選擇安裝一個。

本手冊中使用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

如果執行級別為35的狀態為off,執行如下命令:

bash# checkconfig - -level 35 mysqld on

2.1.3 Web Server

檢視已經安裝的版本,訪問預設的歡迎介面:http://localhost/

本例中使用Apache Web Server,如果沒有安裝,訪問http://apache.org/,下載1.3.x2.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 forCGI.pm (v3.21)found v3.15

Checking forTimeDate (v2.21)not found

Checking forPathTools (v0.84)ok: found v3.12

Checking forDBI (v1.41)ok: found v1.52

Checking forTemplate-Toolkit (v2.15)not found

Checking forEmail-Send (v2.00)not found

Checking forEmail-MIME (v1.861)not found

Checking for Email-MIME-Modifier (v1.442)not found

Checking available perl DBD modules...

Checking forDBD-Pg (v1.45)not found

Checking forDBD-mysql (v4.00)found v3.0007

Checking forDBD-Oracle (v1.19)not found

The following Perl modules are optional:

Checking forGD (v1.20)not found

Checking forChart (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>’

附錄Arhel上的模組安裝列表。該列表是按照安裝順序排列的。

2.2 配置

2.2.1 localconfig

再次執行checksetup.pl,不需要加引數。

bash#./checksetup.pl

這次checksetup.pl會列出你已經正確安裝的Perl模組及版本資訊。還會生成一個localconfig檔案。這裡麵包含bugzilla一些引數的預設設定。

用文字編輯器開啟localconfig,需要修改$db_driver$db_pass兩個值。更改$db_driver為正確的資料庫,如:mysqlPgoracle(本例中使用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的很多特殊詞被忽略,如:ccftpuri

開啟/etc/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地址,他或她的全稱,