歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在CentOS上安裝Bugzilla

在CentOS上安裝Bugzilla

日期:2017/2/28 16:10:09   编辑:Linux教程

這幾天一直在折騰Bugzilla,原以為應該挺簡單的,卻也是一波三折。下面是“被虐”的過程:

一、下載

由於不太習慣Linux的命令行下載方式,就先在本地的下載了當前最新的穩定版本Bugzilla3.6.1 ,然後通過scp上傳到服務器上。解壓至/usr/local/bugzilla。同時

在/var/www/html目錄中創建一個symbolic link:

# ln -s /var/local/bugzilla bugzilla

為httpd的用戶分配該文件夾的訪問權限

# chown apache.apache -R bugzilla

二、安裝和配置

注:以下操作都在root權限下完成。

完成解壓後,自然就按照官網上的指南 (以下稱指南 ),一步步開始安裝。

1、之前Perl、MySQL、Apache Httpd都已經安裝,並且版本符合要求。不過為了安全期間,還是運行了一下

# yum install perl

果真還是有不少內容更新。

2、切換到/var/www/html/bugzilla下,檢查環境配置:

# ./checksetup.pl --check-modules

很多沒有安裝的模塊都列了出來,指南上說可以用下面的命令安裝缺少的模塊:

# perl install-module.pl <modulename>

但是運行上條命令是給出了更加簡便的方式:

# ./install-module.pl --all

然後運行

# ./checksetup.pl

注意這次沒有後面的--check-modules選項,至此一切還都是按照指南上的說明順利進行。可是接下來就踏上了痛苦“旅程”。

上面命令的運行結果並沒有產生localconfig文件,而是提示有些模塊仍然沒有安裝,尤其是DBD::mysql,還有幾個可選的模塊,GD、Chart、GDGraph等。當時就想,單獨安裝一下試試,於是:

# ./install-module.pl GD

沒有成功,錯誤:

Can't call method "cpan_version" on an undefined value at /usr/local/bugzilla/Bugzilla/Install/CPAN.pm line 96.

第一反應當然就是去Google,可是搜到的結果只有區區四條,還有兩個是一個頁面。難道這個問題只有我碰到?難道別人都那麼順利?

把看起來關聯程度最高的讀完了,終於發現了一句話說是可能需要把之前的cpan刪了,重新安裝。有解決方案就行,試一下。就到root下面把.cpan目錄刪了。殊不知這下麻煩可大了。然後再次運行命令安裝,從輸出信息中看到需要安裝cpan,可是死活連不上默認的兩個ftp服務器,一直提示Connection:refused 。可是兩個ftp在pc上訪問都沒有問題,頓時著急上火。怎麼辦?還是采用笨方法,先下載到本地,然後按照目錄復制過去。實施起來才知道,這個想法太幼稚,cpan的目錄結構雖然不太復雜,但是光下載文件,也要不斷的時間,這個時間我可浪費不起。糾結呀!!

(總不能在一棵樹上吊死吧,還有Mantis可以用,轉投Mantis,還真是好用,很快就裝好了。雖然也有一點小插曲,是因為自己沒有看清楚說明,填錯了數據庫的用戶名密碼。)

一天後,心裡還是不服,真的只能這樣了嗎?不行,繼續來。既然這個辦法不行,看看是不是因為代理的問題。於是就找系統可以設置代理的地方,無功而返。那就沉下心來(唉,知名的弱點,有時候太心急)研究下cpan吧,原來可以直接設置代理。以前都是直接跳過了。

# cpan

cpan> o conf init

提示是否需要手動配置時,直接回車,默認是yes。中間略過n多選項,到了ftp_proxy和http_proxy按照本地pc上的配置填寫。最後一步步過去。退出cpan,重新開始安裝。看起來好像有效果,可是連接proxy一直超時。看來是因為防火牆的原因,ftp出不去,那麼看看有沒有使用http的協議鏡像,還真找到了http://www.perl.org/CPAN/ (如此明顯的地址,看來是我以前的方向錯了。)

重啟配置cpan,去掉ftp_proxy和http_proxy的值,在最後一項提示輸入另外一個URL時,將上面地址填入。終於解決了CPAN重新安裝的問題。

這次沒有安裝DBD::mysql,而是嘗試了GD,

# ./install-module.pl GD

得到了另外一個錯誤:

Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.

檢查發現libgd已經安裝,並且版本符合要求,有人說是因為gdlib-config不存在,於是下載gd ,然後編譯,將產生的gdlib-config復制到/usr/bin/下面,並且添加權限:

# ./config

# cp gdlib-config /usr/bin

# chmod 774 gdlib-config

再次安裝,這次錯誤有了變化:

GD.xs:7:16: error: gd.h: No such file or directory
GD.xs:8:21: error: gdfontg.h: No such file or directory

這個是因為只安裝了gd,還需要安裝gd-devel包:

# yum install gd-devel

然後GD順利完成。

接下來安裝DBD::mysql,這次出現了的錯誤和上面的類似:

In file included from dbdimp.c:20:
dbdimp.h:22:49: error: mysql.h: No such file or directory
dbdimp.h:23:45: error: mysqld_error.h: No such file or directory

那就重新安裝mysql和mysql-devel

# yum install mysql mysql-devel

DBD::mysql完成安裝。

一切都安裝完畢了,再次運行checksetup.pl,生成了localconfig。下面就按照指南開始配置:mysql和apache。數據庫的配置很簡單,順利完成。

Apache的配置,指南中提供了兩種方式,一個是cgi運行,一個mod_perl。我想既然安裝那麼多perl相關的東西,那就用後者吧。(不知道我是不是對指南的理解有誤?)在/etc/httpd/conf.d/perl.conf中添加了:

  1. PerlSwitches -I/var/www/html/bugzilla -I/var/www/html/bugzilla/lib -w -T
  2. PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl

看起來一切都完成了。那就重啟httpd服務吧。

# service httpd restart

啟動時發生錯誤:

Can't locate Template/Config.pm

除了上面信息以外,還有幾個的類似的。解決方法比較簡單,使用cpan重新安裝即可。

# cpan Template

有時候運行下面的命令,再用cpan運行一次:

# ./install-module.pl <modulename>

經過幾次反復,終於啟動了httpd服務。在浏覽器看到了Bugzilla的尊容,可是還沒有來得及高興,發現輸入用戶名和密碼後不能登陸,提示500 Internal Error。趕緊查看apache的error_log,發現裡面還有一個:

Can't locate Digest/SHA.pm in @INC (@INC contains: . lib /var/www/html/bugzilla

還是采用上面的方法,安裝缺少的Digest。

安裝成功,還是提交不成功,仍然是500 Internal Error。仔細觀察地址欄中的地址,顯示的是index.cgi,不是采用perl方式嗎,難道還要用CGI??(懇請高手指點!)

看來還要打開CGI。沒辦法,就先把perl.conf中那兩行注釋掉。再編輯/etc/httpd/conf/httpd.conf:

將下面這行前面的注釋去掉:

AddHandler cgi-script .cgi

然後,添加下面內容:

  1. <Directory /var/www/html/bugzilla>
  2. Options Indexes FollowSymLinks ExecCGI
  3. AllowOverride Limit
  4. DirectoryIndex index.cgi index.html
  5. Order allow,deny
  6. Allow from all
  7. </Directory>

重新啟動httpd服務,bugzilla終於可以正常使用了。

三、後記

按說我應該珍惜這來之不易的勞動成果,可是實在不習慣進去後還要自己搜索bug的做法(可能這就是先入為主吧,因為之前使用近三年的mantis),同時也習慣bug的管理方式,感覺有點亂。

Copyright © Linux教程網 All Rights Reserved