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
在安裝前,請確定你擁有這臺機器的管理員許可權。
警告 安裝過程可能會使你的機器不太安全,請確保防火牆已經啟用。 |
安裝過程如下:
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 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>’
附錄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。
開啟/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地址,他或她的全稱,