在Cent OS上安裝Bugzilla

2021-05-23 01:53:52 字數 3713 閱讀 9492

這幾天一直在折騰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

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

# ./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,可是搜到的結果只有區區四條,還有兩個是乙個頁面。難道這個問題只有我碰到?難道別人都那麼順利?

(總不能在一棵樹上吊死吧,還有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.

# ./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中新增了:

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

啟動時發生錯誤:

can't locate template/config.pm

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

# cpan template 

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

# ./install-module.pl

經過幾次反覆,終於啟動了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??(懇請高手指點!)

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

addhandler cgi-script .cgi

然後,新增下面內容:

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

三、後記

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

我相信是我自己沒有把功能開發出來,希望有這方面的經驗的同學來交流,先謝謝了!

在CentOS上安裝Git

centos的yum源中沒有git,只能自己編譯安裝,現在記錄下編譯安裝的內容,留給自己備忘。確保已安裝了依賴的包 30 你的目錄可能不是這個 autoconf configure make sudo make install 檢查下安裝的版本,大功告成 git version 通過ssh 進行認證...

在centos上安裝nodejs

注 出處不明,但我按照下面的步驟,安裝沒有問題 1.安裝必要的make以及gcc,gcc c 編譯器,以及編譯python需要的bzip2 yum y install make gcc gcc c yum y install bzip2 2.安裝python2.6 1 先公升級python,假設公升...

在centos上安裝lksctp

用yum 工具 yum list lksctp 檢視相關的可用包 lksctp tools.i686 1.0.10 5.el6 base lksctp tools devel.i686 1.0.10 5.el6 base lksctp tools doc.i686 用yum install 把它們都...