本文安裝過程主要參考:
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,也能正常發送郵件了!