Debian/Ubuntu架設nginx+bugzilla

題注

最近須要一個簡單快速的bug追蹤工具,考慮到系統環境以及學習成本,決定採用bugzilla。不試不知道,原來這裏面還有這麼多的坑須要一個個踩平~,遂隨筆一下以備後用。php

我採用的系統組成是debian+mysql+nginx+bugzilla,使用centos的親可能須要注意nginx的安裝方式和配置文件位置不同,須要靈活變通;至於使用apache的同窗,請參考其它文章設置轉發部分。mysql

1、安裝nginx、perl-fpm、mysql

不一樣於apache使用的cgi方式,nginx採用fcgi來調度php、perl等編程語言。因此咱們須要安裝並配置perl的fpm。nginx

安裝

aptitude install nginx libfcgi-perl mysql-server

我原本想經過下載編譯的方式安裝fcgi(https://metacpan.org/pod/FCGI)不料安到一半發現發行版里居然有!因而乎瞬間採用更好的方案解決了。發行版裏找不到這個包的同窗能夠自行下載安裝(nginx也是一個道理)web

安裝完後發現,這個lib沒有啓停腳本,因而上網上找了兩個腳本安上去:sql

wget http://nginxlibrary.com/downloads/perl-fcgi/fastcgi-wrapper -O /usr/bin/fastcgi-wrapper.pl
wget http://nginxlibrary.com/downloads/perl-fcgi/perl-fcgi -O /etc/init.d/perl-fcgi
chmod +x /usr/bin/fastcgi-wrapper.pl
chmod +x /etc/init.d/perl-fcgi
update-rc.d perl-fcgi defaults
insserv perl-fcgi

執行完上述腳本後,咱們在/etc/init.d/裏面安裝了一個服務perl-fcgi,它將在開機後自動運行/usr/bin/fastcgi-wrapper.pl數據庫

配置

fastcgi-wrapper.pl調用libfcgi-perl並監聽socket端口,nginx將經過該端口與之通訊。默認地址爲127.0.0.1:9000。爲了提高性能,我將其改成命名管道方式:apache

vim /usr/bin/fastcgi-wrapper.pl

找到原來的啓動監聽語句將其修改成:編程

$socket = FCGI::OpenSocket( "/tmp/perl-fcgi.sock", 10 );

保存後,啓動perl-fcgivim

service perl-fcgi start

若是啓動失敗,提示`account not available`,多是www-data用戶被禁止登錄,執行如下命令:centos

usermod -s /bin/sh www-data

 進入nginx的配置目錄,建立配置文件:

cd /etc/nginx/sites-available
vim bugzilla

配置文件以下(將域名和端口替換成你的訪問地址):

server {
        listen          8008; # listening port
        server_name     bugzilla.example.com; # server name

        root            /var/www/bugzilla; # installation path

location /skin/ {}
location /js/ {}
location / { include fastcgi_params
; fastcgi_pass unix:/tmp/perl-fcgi.sock; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

接下來,將配置文件連接到sites-enabled目錄中,並啓動應用(若是以前nginx已經啓動,調用reload重載入配置文件):

cd ../sites-enabled/
ln -s ../sites-available/bugzilla .
service nginx start

mysql的安裝與配置在網上至關多,在此再也不贅述。

2、安裝bugzilla

搞定了基礎環境,接下來開始正式安裝bugzilla

安裝

從bugzilla.org下載並解壓到/var/www

mkdir -p /var/www
cd /var/www
chown -R www-data .
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.4.5.tar.gz
tar zxf bugzilla-4.4.5.tar.gz
mv bugzilla-4.4.5 bugzilla
cd bugzilla

配置

接下來須要對bugzilla進行配置。bugzilla依賴某些perl組件本機可能沒有安裝,而我在使用其自帶的安裝腳本時始終沒法成功安裝,網上搜索後找到一個解決方案是使用cpanm來安裝。

下載並安裝cpanm:

sudo curl -L http://cpanmin.us | perl - --sudo App::cpanminus

接下來咱們執行checksetup.pl來進行配置。配置過程當中checksetup.pl須要執行若干次以完成環境檢查。第一次執行後,可能會提示有模塊未安裝,按照未安裝的模塊列表使用cpanm命令進行安裝便可

perl checksetup.pl
cpanm YAML
cpanm DateTime
...

安裝完成後,再次執行checksetup.pl,此時依賴模塊應該都檢查經過。若是有模塊已安裝但檢查不到,能夠嘗試強制從新安裝,如:

cpanm DateTime -f

模塊檢查經過後,checksetup.pl會提示mysql鏈接失敗,咱們如今進入mysql配置用戶與數據庫:

CREATE database bugs default charset utf8 collate utf8_bin;
CREATE user bugs@localhost identified by 'bugs';
grant all on bugs.* to bugs@localhost;
flush privileges;

修改數據庫配置:

vim localconfig

找到並修改如下項:

$webservergroup = 'www-data';

$db_pass = 'bugs';

注:若是使用遠程數據庫等,請自行進行配置用戶名、密碼等

至此,咱們完成了全部的配置。再次執行checkconfig.pl,會提示輸入管理員郵箱和密碼,並保存配置到數據庫。

嘗試打開你配置的訪問地址(如:http://bugzilla.example.com:8008/),若是能打開並排版顯示正確,就代表能夠訪問了。

相關文章
相關標籤/搜索