|
最近項(xiàng)目進(jìn)入測(cè)試階段,需要用到一個(gè)bug管理工具,第一個(gè)想到的就是bugzilla?,F(xiàn)在最新的是2.20,修正和增強(qiáng)了不少東西。只是沒有漢化補(bǔ)丁,不過這沒關(guān)系。安裝過程其實(shí)可以參考bugzilla發(fā)布包中的安裝文檔,只是其中一些地方需要自己修改才行。另外bugzilla在Unix環(huán)境下的安裝很方便,照著官方的安裝文檔一步步做下來就可以用了,而在windows下則不這么容易,特別是發(fā)送郵件這一塊,花了我不少時(shí)間。
一、軟件準(zhǔn)備: 1、 Apache HTTP Server: 優(yōu)秀的Http服務(wù)器,不用多說了,可以在http://httpd./下載,最新的是 2、 Perl解釋器: 可以在http://www.下載,最新的是 3、 MySQL數(shù)據(jù)庫: 在http://www.下載,我用的是 4、 James郵件服務(wù)器: 這是Apache的一個(gè)開源郵件服務(wù)器,解壓后幾乎不用配置就可以用了,提供其他程序進(jìn)行郵件發(fā)送服務(wù)是很實(shí)用的。http://james./可以下載,最新是 5、 JDK或JRE: 要使用James就需要安裝一個(gè)Java運(yùn)行時(shí)環(huán)境,JDK包含了JRE的安裝,同時(shí)提供JAVA開發(fā)能力。JRE只包括Java運(yùn)行時(shí)。到http://java./j2se/1.5.0/download.jsp下載,最新的是1.5。 6、 Bugzilla: http://www./下載,最新是2.20。
二、JDK/JRE安裝: 安裝JDK: 我安裝的是JDK1.5,安裝過程很簡(jiǎn)單,中間只需要指定一下JDK和JRE的安裝路徑即可,如果只安裝JRE則只需要指定JRE的安裝路徑。 JDK:D:\sdks\jdk JRE:D:\sdks\jre
配置環(huán)境變量: 打開:我的電腦-屬性-高級(jí)-環(huán)境變量 在系統(tǒng)變量中增加一個(gè)JAVA_HOME= D:\sdks\jdk 在系統(tǒng)變量中增加一個(gè)CLASSPATH=%JAVA_HOME%\lib 在系統(tǒng)變量的PATH變量中增加值%JAVA_HOME%\bin 注意值間用分號(hào)隔開。
測(cè)試: 進(jìn)入命令行模式,輸入java –version 如果出現(xiàn)Java的版本信息則表名以上安裝成功了。
三、James安裝: 安裝: 將下載到的james包解壓到一個(gè)目錄。如 D:\tools\james-
測(cè)試: 打開安裝目錄下的bin目錄,執(zhí)行run.bat。 如果出現(xiàn)如下提示信息表名安裝成功,可以發(fā)送郵件了。
四、MySQL安裝: 安裝: 建議下載可執(zhí)行的安裝程序,這樣配置會(huì)方便許多。基本是默認(rèn)安裝,最多修改一下安裝路徑。我裝在D:\tools\MySQL\MySQL Server 5.0。 安裝完后進(jìn)入服務(wù)實(shí)例配置向?qū)?,基本也是默認(rèn),只是到了安裝配置界面時(shí),需要為root賬號(hào)輸入一個(gè)密碼。也可以把MySQL的服務(wù)加入windows服務(wù)中,這樣服務(wù)器啟動(dòng)的時(shí)候就會(huì)自動(dòng)啟動(dòng)MySQL了。 順便安裝兩個(gè)管理工具,一個(gè)是administrator,一個(gè)是query。
測(cè)試: 可以打開windows的服務(wù)管理來啟動(dòng)MySQL,然后打開administrator管理工具,輸入Server Host(服務(wù)器的IP地址),Port(端口,默認(rèn)的3306即可),Username(管理員用戶名是root),Password(配置實(shí)例時(shí)設(shè)置的root密碼)。 如果可以正常登入管理界面,表示數(shù)據(jù)庫安裝成功。
配置: 我們需要為bugzilla在MySQL中建一個(gè)用戶和一個(gè)存儲(chǔ)空間。 可以在管理界面左側(cè)的Catalogs選項(xiàng)中建立一個(gè)存儲(chǔ)空間,名為bugs。 可以在管理界面左側(cè)的User Administration選項(xiàng)中建立一個(gè)用戶,名為bugs。同時(shí)需要為這個(gè)bugs用戶在右側(cè)的Schema Privileges選項(xiàng)卡中分配權(quán)限,操作bugs存儲(chǔ)空間的權(quán)限。必要的權(quán)限如下,其實(shí)全加上也沒關(guān)系:
注意: 我在使用管理界面進(jìn)行用戶的建立和授權(quán)過程時(shí),每次都出現(xiàn)錯(cuò)誤,無法建立。這時(shí)可以使用query查詢工具來通過sql的方式完成。啟動(dòng)query查詢工具,連接數(shù)據(jù)庫的配置和administrator管理工具配置類似,不過需要多指定一個(gè)Default Schema(要操作的存儲(chǔ)空間)。填入剛才通過管理工具建好的存儲(chǔ)空間名稱:bugs。 打開后在頂部的長(zhǎng)條形輸入框中輸入如下sql命令:
請(qǐng)把$db_pass換成該存儲(chǔ)空間的用戶bugs的密碼:bugs。 然后點(diǎn)擊右側(cè)的綠色Execute按鈕執(zhí)行命令,如果底部出現(xiàn)紅色警告,請(qǐng)自己查看sql語句是否正確。 接著再執(zhí)行一句:
現(xiàn)在數(shù)據(jù)庫的配置也完成了。
五、perl安裝: 安裝: 直接運(yùn)行下載到的perl安裝程序,需要指定安裝路徑,最后注意有一個(gè)復(fù)選框需要勾選,要求把perl的bin目錄自動(dòng)加入環(huán)境變量PATH中。 我安裝在D:\tools\Perl
測(cè)試: 進(jìn)入命令行模式,執(zhí)行
如果出現(xiàn)版本信息則表示安裝正確了。
六、bugzilla安裝: 將下載到的bugzilla壓縮包解壓到任意目錄,我的是D:\tools\bugzilla
七、Apache HTTP Server安裝: 安裝: 運(yùn)行下載的Apache HTTP Server安裝文件,選擇安裝路徑和端口。我安裝在D:\tools\Apache Group\Apache2,端口是默認(rèn)的80。好像還有一個(gè)選擇就是啟動(dòng)時(shí)自動(dòng)監(jiān)視Apache服務(wù)器,安裝后在啟動(dòng)欄中會(huì)多一個(gè)“Monitor Apache Servers”。運(yùn)行它后,在系統(tǒng)欄會(huì)出現(xiàn)一個(gè)圖標(biāo),打開它可以看到Apache服務(wù)器的運(yùn)行狀態(tài),并且可以啟動(dòng)和停止服務(wù)。后邊我們講到啟動(dòng)或重啟服務(wù)器,表示使用這個(gè)監(jiān)視工具來操作Apache服務(wù)器。
測(cè)試: 啟動(dòng)Apache服務(wù)器后,在瀏覽器中輸入“http://[服務(wù)器IP地址]”,應(yīng)該會(huì)出現(xiàn)Apache的歡迎界面。如果沒有,請(qǐng)檢查服務(wù)是否正常啟動(dòng)了,端口是否和其他程序沖突了等等。
八、Perl Module安裝: 我對(duì)Perl不熟悉,我的理解是Perl Module是Perl需要做一個(gè)特定的事情時(shí)需要的相關(guān)組件。我們這里要讓Perl支持bugzilla的運(yùn)行,就需要安裝必要的一些Module。安裝Perl、配置bugzilla以及配置Apache服務(wù)器是交叉進(jìn)行的,所以下邊我將描述整個(gè)安裝配置過程。
Bugzilla提供了一個(gè)checksetup.pl的文件,其實(shí)就是它的安裝處理文件了,它可以檢查必要的perl Module是否存在,然后還能創(chuàng)建數(shù)據(jù)庫表,編譯一些文件等。
在執(zhí)行checksetup.pl之前,我們需要修改一些bugzilla的文件。因?yàn)槲覀兪窃?/SPAN>windows環(huán)境下使用,bugzilla默認(rèn)是用于Unix環(huán)境的,所以不得不對(duì)源文件做一些改動(dòng)。
這是bugzilla自帶的官方文檔里的幫助,我們以此進(jìn)行修改:打開安裝目錄內(nèi)的Bugzilla/Bugmail.pm,即D:\tools\bugzilla\Bugzilla\BugMail.pm。將其中的
替換為:
現(xiàn)在要做一些改變。首先要把“smtp.mycompany.com”改為郵件服務(wù)器的地址,我們?cè)诒緳C(jī)安裝了James做為郵件服務(wù)器,所以這里改為“127.0.
James不需要身份驗(yàn)證,所以不用增加此項(xiàng)。 這里有一個(gè)很嚴(yán)重的問題是
這一行,不知道是bugzilla故意寫錯(cuò)還是怎么樣,后邊使用checksetup.pl進(jìn)行安裝時(shí),這一行編譯不過去,報(bào)告的是$person沒有進(jìn)行聲明。稍微有點(diǎn)編程知識(shí)的人在查看我們修改的這個(gè)位置所處的方法sub MessageToMTA ($) 內(nèi),并沒有將$person做為參數(shù)傳進(jìn)來,也沒有單獨(dú)的聲明,不出錯(cuò)才怪了。奇怪的在以前的bugzilla2.18中已經(jīng)有這個(gè)問題了。 網(wǎng)上有這個(gè)問題的很多解決辦法,通常是修改這個(gè)sub MessageToMTA ($)方法,在參數(shù)中增加一個(gè)值,將person做為參數(shù)傳進(jìn)來。同時(shí)在將參數(shù)值賦給$person。即將
修改為
增加了一個(gè)$符號(hào)。接著把該方法開始位置的
修改為
增加了對(duì)$person的參數(shù)賦值。
但是這樣修改后,方法增加了一個(gè)參數(shù)。還需要對(duì)整個(gè)bugzilla的目錄進(jìn)行全面搜索,尋找使用到這個(gè)MessageToMTA的地方,然后修改為需要兩個(gè)參數(shù)的形式。但是我發(fā)現(xiàn)很難確定應(yīng)該如何設(shè)置需要傳入的第二個(gè)參數(shù)。在我做了對(duì)應(yīng)的修改后,并不能成功的發(fā)送郵件,而且都沒有連接郵件服務(wù)器,所以決定不使用這種方式。
我的做法是在“$smtp->to($person);”這一行前加上#號(hào)將其注釋掉,而且可以成功發(fā)送郵件,希望深入研究過的朋友給點(diǎn)建議。
現(xiàn)在修改BugMail.pm文件,將sub MessageToMTA ($)方法中的“$smtp->to($person);”用#號(hào)注釋掉。
完成以上修改后保存。
現(xiàn)在在命令行模式進(jìn)入bugzilla的安裝目錄,執(zhí)行一下命令開始安裝:
如果一切正常,將出現(xiàn)如下的提示信息:
其中的checkfor用來檢查bugzilla需要用到的perl module是否存在,如果存在的話會(huì)顯示“ok found”以及版本號(hào),不存在的會(huì)顯示“not found”。 接著看后邊的提示信息,說使用如下命令可以把一個(gè)資源庫加入perl的下載路徑,來下載這些不存在的perl module。
現(xiàn)在執(zhí)行這行命令,將出現(xiàn)下邊的提示:
再看一下前邊執(zhí)行cheksetup.pl文件時(shí)列出的提示,其中有很多“ppm install xxx”這樣的語句,這些其實(shí)就是用來下載并安裝缺少的perl module的命令?,F(xiàn)在在命令行中依次執(zhí)行這些“ppm install xxx”命令。主要有下邊這幾個(gè):
因?yàn)槲覀兪褂昧?/SPAN>mysql數(shù)據(jù)庫,需要再安裝一個(gè)module:
每次執(zhí)行安裝命令需要的時(shí)間是由你的網(wǎng)絡(luò)速度決定的,可能會(huì)花些時(shí)間,你也可以寫一個(gè)批處理文件來自動(dòng)執(zhí)行這些命令。 執(zhí)行過程中有些時(shí)候會(huì)詢問是否安裝,請(qǐng)選擇yes,或者需要你指定一個(gè)安裝目錄等,隨意指定一個(gè)目錄即可,我的是d:\tools\perl\module。
如果正常執(zhí)行了一個(gè)安裝程序,將出現(xiàn)類似如下的提示信息:
現(xiàn)在來再次執(zhí)行perl checksetup.pl命令,提示應(yīng)該顯示必要的模塊都可以找到了。
同時(shí)要求我們對(duì)自動(dòng)生成的localconfig文件進(jìn)行配置,主要是數(shù)據(jù)庫的。現(xiàn)在打開bugzilla安裝目錄中的localconfig文件,這個(gè)文件是在執(zhí)行了checksetup.pl后生成的。 因?yàn)槲覀兪窃诒緳C(jī)安裝了MySQL數(shù)據(jù)庫,并且存儲(chǔ)空間和用戶名都是“bugs”,所以localconfig文件中的
都不用修改,默認(rèn)即可。需要修改的是
這是bugs存儲(chǔ)空間的bugs用戶的密碼,前邊配置數(shù)據(jù)庫時(shí),密碼設(shè)置為“bugs”,所以這里修改為:
保存該文件,然后再來執(zhí)行checksetup.pl文件。如果一切正常,將會(huì)出現(xiàn)一些正常的提示信息,然后會(huì)詢問SMTP服務(wù)器的主機(jī)名是什么,因?yàn)槲覀冊(cè)诒緳C(jī)使用James,所以這里就填127.0.0.1。 接著會(huì)出現(xiàn)一些建表的提示信息,最后要求輸入系統(tǒng)的超級(jí)管理員的郵箱賬號(hào)、管理員名字、兩次密碼。 這樣就結(jié)束了bugzilla的安裝配置了。
現(xiàn)在來看Apache的配置,主要是Apache的httpd.conf文件,位于安裝目錄Apache Group下的Apache2\conf內(nèi)。我的是“D:/tools/Apache Group/Apache2/htdocs/httpd.conf”。
打開它,首先找到
這一行,將地址修改為bugzilla的安裝目錄:
然后找到
這一行,在它與緊接著的</Directory>之間是我們主要修改的地方。 首先把
修改為bugzilla的安裝目錄:
然后將
這一行修改為:
還有把
一行改為
接著在</Directory>之前加一行:
這一行很重要,是讓Apache從注冊(cè)表中尋找我們安裝好的Perl的路徑,使用Perl來對(duì)bugzilla里的cgi進(jìn)行解釋。
最后在整個(gè)httpd.conf中尋找如下一行:
將其修改為:
指明讓Apache能夠以index.cgi做為訪問的默認(rèn)頁面。
再尋找如下一行:
將其前邊的#號(hào)去掉:
下邊我列出修改前和修改后的重要部分的對(duì)比,中間去掉了注釋信息: 修改前:
修改后:
修改完成后保存。
修改注冊(cè)表: 我們已經(jīng)在httpd.conf文件中配置了讓Apache在注冊(cè)表中尋找Perl的安裝路徑,但是我們還沒有在注冊(cè)表中添加這些內(nèi)容。現(xiàn)在就來新建一個(gè)注冊(cè)表導(dǎo)入文件來完成添加。 新建一個(gè)名為cgi.reg的文件,添加如下內(nèi)容:
注意,最后一行應(yīng)該是正確的perl安裝路徑。
保存后執(zhí)行該文件完成注冊(cè)表的修改。
九、正式運(yùn)行: 現(xiàn)在應(yīng)該首先啟動(dòng)好James服務(wù)器、MySQL數(shù)據(jù)庫服務(wù)器,最后啟動(dòng)Apache服務(wù)器。 打開瀏覽器訪問http://[服務(wù)器IP地址],應(yīng)該可以看到bugzilla的首頁了。 可以使用在執(zhí)行checksetup.pl文件時(shí)要求輸入的管理員郵件地址(賬號(hào))和密碼登錄系統(tǒng),如果可以正常登錄,說明基本功能已經(jīng)安裝成功。 再來測(cè)試郵件發(fā)送是否正常。 先退出登錄,然后在右下角點(diǎn)“New Account”創(chuàng)建一個(gè)新賬號(hào)。輸入一個(gè)你的其他可用郵箱地址,然后提交。如果正常的話會(huì)出現(xiàn)一個(gè)“Account Created”頁面,說賬號(hào)創(chuàng)建成功,密碼已經(jīng)發(fā)到你的郵箱去了。到底有沒有發(fā)送成功,我們可以去看看James的日志,James會(huì)把每次發(fā)送郵件的情況都記錄下來的。 打開James安裝目錄下的apps\james\logs目錄,我的在D:\tools\james- 找到文件名以smtpserver開頭,日期做為后綴的文件,如smtpserver- 如果發(fā)送正常,里邊會(huì)記錄發(fā)送成功的信息,類似如下:
From是系統(tǒng)構(gòu)造的,不用管它,for是郵件發(fā)送到的地址,應(yīng)該是你剛剛注冊(cè)新賬號(hào)時(shí)用的地址。這里是成功了,如果失敗的話,會(huì)有一些錯(cuò)誤提示,請(qǐng)進(jìn)行修正。
需要嚴(yán)重注意的是,你的這臺(tái)服務(wù)器的計(jì)算機(jī)名最好不要有特殊字符,比如下劃線。我遇到過就是計(jì)算機(jī)名包含了下劃線,結(jié)果James識(shí)別postmaster@myMachineName地址時(shí),認(rèn)為地址格式有誤。如果你深入研究James的配置,應(yīng)該可以解決這個(gè)問題的。 另外還要注意你的機(jī)器是否安裝了什么防火墻啊等等安全軟件,如果不成功也可以去檢查一下。
現(xiàn)在打開你剛才注冊(cè)用的那個(gè)郵箱收取郵件吧。如果正常的話,應(yīng)該可以收到bugzilla發(fā)送的一封包含登錄密碼的郵件。 另外,就算James可以正常的發(fā)出郵件,你的郵箱還不一定可以收得到。我測(cè)試過幾個(gè)網(wǎng)站提供的郵箱,只有google提供的gmail可以正常接收郵件,還有我們公司自己的郵箱也可以。但是像126.com這些就收不到了,不知是怎么回事。
我也測(cè)試過查詢自己的密碼、提交一個(gè)bug、操作bug等等,都可以正常的發(fā)送郵件到相關(guān)的郵箱去。不過這些郵件中的“發(fā)送人”卻一直是“bugzilla-daemon”,這個(gè)我也不清楚該在什么地方配置。
至于bugzilla的使用,請(qǐng)參考其他文檔,我這里只寫了如何安裝。 我們現(xiàn)在用的這個(gè)是2.20版的,只有英文版,所以有一些專業(yè)詞匯最好還是能找一篇比較好的文章理解一下,比如修正狀態(tài)分類、嚴(yán)重程度分類等等。 Bugzilla2.18版時(shí),有人做一個(gè)一份中文模板,可以將它進(jìn)行漢化,不過翻譯的不全、翻譯質(zhì)量也有很大的問題,不如不用。你也不要期望可以把這套中文模板用到2.20中,這樣將出現(xiàn)不可預(yù)計(jì)的錯(cuò)誤,版本不同嘛。 這個(gè)中文模板已經(jīng)幾年沒有更新了,好像漢化人已經(jīng)放棄了這個(gè)東東。希望哪位牛人可以抽時(shí)間做個(gè)漢化的工作,因?yàn)?/SPAN>bugzilla對(duì)于項(xiàng)目開發(fā)確實(shí)是個(gè)好東西。 |
|
|