我剛剛?cè)胧諹NIX系統(tǒng)學習,學著安裝配置Bugzilla。被不少的問題折騰著浪費不少時間,查了不少資料,最終還是圓滿成功了。在這作個總結(jié),希望這篇博文能幫助初學者。歡迎各位朋友共同探討學習。
emial:zongguo.zhang@gmail.com
歡迎轉(zhuǎn)載,請注明出處。
bugzilla安裝工具 apache2+mysql5.1+perl+bugzilla3.2.2
Step by step
安裝篇
1.安裝apache2
Ubuntu就可以直接用命令行可以安裝 #sudo apt-get install apache2 系統(tǒng)自動安好,打開瀏覽器在地址欄輸入http://ip (你的ip地址或者127.0.0.1)就會在 頁面上出現(xiàn) “ It works”則表明apache安裝成功。
出了問題的話,進入/etc/apache2 目錄下 用#vi httpd.conf打開文件添加ServerName 127.0.0.1:80即可.
2.安裝mysql
用命令#sudo apt-get install mysql-server 系統(tǒng)自動安裝,我裝的是mysql5.1.
安裝時要輸入密碼這是進入root的密碼(建議用你ubuntu系統(tǒng)密碼),(mysql -uroot -p密碼),然后用上述命令行來登錄,登錄成功顯示版本信息和 mysql> ,OK!
mysql 服務(wù)啟動/停止/重啟命令#service mysql start/stop/restart.
3.安裝Bugzilla
bugzilla到官網(wǎng)去下載(一般為tar.gz包),這個不用我說了吧!不懂google一下,然后cd到下載目錄解壓包#tar -xzf bugzilla.xx.xx.tar.gz ,再改名#mv bugzilla.xx.xx bugzilla ,再移動到/var/www下面#mv bugzilla /var/www 完畢~~~~ok!
4.安裝perl
先進入到bugzilla目錄#cd /var/www/bugzilla,在命令行輸入#./checksetup.pl命令檢查一下還有哪些perl模塊沒有安裝,因為在系統(tǒng)自動安轉(zhuǎn)apache和mysql時就已安裝一部分,
Checking perl modules...
Checking for CGI.pm (v3.33) ok: found v3.49
Checking for TimeDate (v2.21) ok: found v2.24
Checking for PathTools (v0.84) ok: found v3.31
Checking for DBI (v1.41) ok: found v1.611
Checking for Template-Toolkit (v2.15) ok: found v2.22
Checking for Email-Send (v2.00) ok: found v2.198
Checking for Email-MIME (v1.861) ok: found v1.903
Checking for Email-MIME-Modifier (v1.442) ok: found v1.903
Checking available perl DBD modules...
Checking for DBD-Pg (v1.45) not found
Checking for DBD-mysql (v4.00) ok: found v4.012
Checking for DBD-Oracle (v1.19) not found
第一組要全裝,第二組就看你裝的什么數(shù)據(jù)庫了,這里裝的是mysql就選DBD-mysql,not found表示沒有安裝,用下面提的COMMANDS TO INSTALL:需要什么就復(fù)制粘貼就可安裝好。
到這里Buglilla所需要的組件全安裝完畢,第一篇OK!
配置篇
1.apache2配置
A.修改 apache的配置文件apache2.conf:進入/etc/www/apache2目錄下面 vi /apache2.conf 找到ServerRoot,修改ServerRoot 為bugzilla所在的目錄“/var/www”,即如下:(注釋原來的添加修改)
#ServerRoot "/etc/apache2"
ServerRoot "/var/www"
B.修改apache的配置文件apache2.conf: 設(shè)置 apache訪問bugzilla的用戶及用戶組,本安裝中將用戶及用戶組都設(shè)置為www-data:如下:
#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}
User www-data
Group www-data
C.修改apache的配置文件apache2.conf:添加bugzilla所在目錄:即在apache.conf文件末添加如下
Alias /bug/ "/var/www/bugzilla"
<Directory "/var/www/bugzilla">
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI +FollowSymLinks
DirectoryIndex index.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
D: 修改 www-data對bugzilla的訪問權(quán)限
chown -R www-data:www-data /var/www/bugzilla
最后,重啟apache2服務(wù) #/etc/init.d/apache2 restart ~~~~~OK!
2.mysql配置
用#mysql -uroot -p密碼 登錄mysql 。
首先,創(chuàng)建數(shù)據(jù)庫bugs mysql> create database bugs;
其次,創(chuàng)建用戶bugs mysql> use mysql;
再次,授權(quán) mysql> GRANT SELECT, INSERT,UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*TO bugs@localhost IDENTIFIED BY '前面root密碼';
最后,mysql> FLUSH PRIVILEGES;
退出mysql:mysql>exit或quit
注:mysql命令以(;)結(jié)束,不區(qū)分大小寫。
3.Bugzilla配置
先#cd /var/www/bugzilla 運行bugzilla目錄下的checksetup.pl (#.checksetup.pl)自動生成loacalconfig文件(原本bugzilla目錄里沒有),打開文件localconfig(#vi localconfig),配置如下:
$webservergroup = 'www-data';
$db_driver = 'mysql';
$db_host = 'localhost';
$db_name = 'bugs';
$db_user = 'bugs';
$db_pass = '密碼'; 注意:為了防止出錯,建議所有密碼都設(shè)置為ubuntu系統(tǒng)密碼。
其它不變。
現(xiàn)的配置文件都設(shè)置完成,重啟apache2 #/etc/init.d/apache2 restart
重啟mysql #service mysql restart
重新運行checksetuo.pl #./checksetup.pl
結(jié)果會出現(xiàn)如下錯誤:
SESSION variable 'max_allowed_packet' is read only. Use SET GLOBAL to assign
the value
上面錯誤的原因是bugzilla3.3.2對mysql5.1及以上新版本的兼容性不好。需要修改幾處源碼文件Bugzilla/Config/Attachment.pm和Bugzilla/Config/Common.pm等,地址:https://bug480001.bugzilla.mozilla.org/attachment.cgi?id=364818其中(-)表示刪除(+)表示添加。
bugzilla的預(yù)編譯和生成相應(yīng)的配置信息等,如下提示:
Precompiling templates...done.
Fixing file permissions...
Initializing "Dependency Tree Changes" email_setting ...
Marking closed bug statuses as such...
Now filling the 'status_workflow' table with valid bug status transitions...
Adding foreign key: attachments.submitter_id -> profiles.userid...
Adding foreign key: bugs_activity.who -> profiles.userid...
Adding foreign key: bugs_fulltext.bug_id -> bugs.bug_id...
·
·
·
并且會提示輸入以下信息:
Enter the e-mail address of the administrator: test@uestc.edu.cn
Enter the real name of the administrator: 用戶名
Enter a password for the administrator account: password
Please retype the password to verify: password
根據(jù)以上提示輸入bugzilla管理員的相關(guān)信息
成功后,在瀏覽器輸入:http://127.0.0.1/bugzilla會出現(xiàn)bugzilla的管理主頁面
應(yīng)用篇
Bugzilla網(wǎng)上有很多使用文檔,我就不再細述。主要想說一下bugzilla發(fā)不出去郵件的問題。
配置smtp。
登錄后點擊administrator進行參數(shù)設(shè)置,點擊parameter進入,再點擊email設(shè)置。
mail_delivery_method : smtp
mailfrom : 設(shè)置成我的真實郵箱 例 me@163.com 可能有的mail server會驗證郵箱的真實性以及是否屬于該mail server
sendmailnow : on
smtpserver : 設(shè)置成smtp authentication服務(wù)器 例smtp.163.com
smtp_username : 我的郵箱 例 me@163.com
smtp_password : 密碼
注意后兩個parameters(選項)是2.22.1 debian所沒有的。
但是接下來我在測試發(fā)送郵件的時候總是報
“The new value for smtp_username is invalid: Error requiring
Authen::SASL: ‘Can’t locate Authen/SASL.pm in @INC (@INC contains: .
lib c:/perl/site/lib c:/perl/lib) at (eval 84) line 3. ‘.”
這個錯誤要求我們安裝Authen::SASL 可以回到checksetup.pl處按照提示安裝,但是我在這里卻出現(xiàn)了問題。
由于之前已經(jīng)將bugzilla3.2.2文件夾的訪問權(quán)限設(shè)置給了www-data組,現(xiàn)在無法進入到bugzilla3.2.2文件夾內(nèi)執(zhí)行任何操作,總報permissions access
采用 sudo –s –H 并輸入密碼,可以以root權(quán)限進入該文件夾操作,安裝好Authen::SASL后,發(fā)送郵件功能ok。