Bugzilla 是一款開源的 Web 應(yīng)用,是一款bug跟蹤系統(tǒng)和測試工具,由 mozilla 開發(fā),并采用 Mozilla 公共許可證授權(quán)(MPL),它經(jīng)常被一些高科技公司如 mozilla、紅帽公司和 gnome 使用,Bugzilla 起初由 Terry Weissman開發(fā)于1998年,它用 perl 語言編寫,用 MySQL 作為后端數(shù)據(jù)庫,它是一款旨在幫助管理軟件開發(fā)的服務(wù)器軟件,它有豐富的功能、高度優(yōu)化的數(shù)據(jù)庫等特性。
在本教程中,我們將安裝 bugzilla 5.0 ,采用 apache 作為 Web 服務(wù)器,并為它啟用 SSL,然后在 freebsd 10.2 上安裝 mysql 5.1 來作為數(shù)據(jù)庫系統(tǒng)。
準(zhǔn)備
FreeBSD 10.2 64位系統(tǒng) Root 權(quán)限為root
更新系統(tǒng)
用 ssh 登錄 freebsd 服務(wù)器,并更新軟件庫:
sudo su
freebsd-update fetch
freebsd-update install
安裝并配置 Apache
在這一步我們將使用 pkg 命令從 freebsd 軟件庫中安裝 apache,然后在 apache24 目錄下編輯 "httpd.conf" 文件,來配置apache 以啟用 SSL 和 CGI 支持,用 pkg 命令安裝 apache:
pkg install apache24
進(jìn)入 apache 目錄并用 nano 編輯器編輯"httpd.conf"文件:
cd /usr/local/etc/apache24
nano -c httpd.conf
取消下面列出行的注釋:
#第70行
LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so
#第89行
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
#第117行
LoadModule expires_module libexec/apache24/mod_expires.so
#第141行,啟用SSL
LoadModule ssl_module libexec/apache24/mod_ssl.so
#第162行,支持cgi
LoadModule cgi_module libexec/apache24/mod_cgi.so
#第174行,啟用mod_rewrite
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
#第219行,服務(wù)器名配置
ServerName 127.0.0.1:80
保存并退出,接著,我們需要從 freebsd 庫中安裝 mod perl,并啟用它:
pkg install ap24-mod_perl2
啟用 mod_perl,編輯"httpd.conf"文件并添加"Loadmodule"行:
nano -c httpd.conf 添加該行: #第175行 LoadModule perl_module libexec/apache24/mod_perl.so
保存并退出,在啟用 apache 之前,用 sysrc 命令添加以下行作為開機(jī)啟動(dòng)項(xiàng):
sysrc apache24_enable=yes
service apache24 start
安裝并配置 MySQL 數(shù)據(jù)庫
我們要用 mysql 5.1 來作為后端數(shù)據(jù)庫并且支持 perl 模塊,用 pkg 命令安裝 mysql 5.1:
pkg install p5-DBD-mysql51 mysql51-server mysql51-client
現(xiàn)在我們要將 mysql 服務(wù)設(shè)置為開機(jī)啟動(dòng),然后為 mysql 配置 root 密碼,運(yùn)行以下命令來完成上述所有操作:
sysrc mysql_enable=yes
service mysql-server start
mysqladmin -u root password aqwe123
注意:這里 mysql 密碼為:aqwe123
以上步驟都完成之后,我們用 root 登錄 mysql shell,然后為 bugzilla 安裝創(chuàng)建一個(gè)新的數(shù)據(jù)庫和用戶。 用以下命令登錄 mysql shell:
mysql -u root -p
password: aqwe123
添加數(shù)據(jù)庫:
create database bugzilladb;
create user bugzillauser@localhost identified by 'bugzillauser@';
grant all privileges on bugzilladb.* to bugzillauser@localhost identified by 'bugzillauser@';
flush privileges;
\q
bugzilla 的數(shù)據(jù)庫創(chuàng)建好了,名字為"bugzilladb",用戶名和密碼分別為"bugzillauser"和"bugzillauser@"。
生成新的 SSL 證書
在 bugzilla 站點(diǎn)的 "ssl" 目錄里生成新的自簽名 SSL 證書,前往 apache24 目錄并在此創(chuàng)建新目錄 "ssl":
cd /usr/local/etc/apache24/
mkdir ssl; cd ssl
接著,用 openssl 命令生成證書文件,然后更改其權(quán)限:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/apache24/ssl/bugzilla.key -out /usr/local/etc/apache24/ssl/bugzilla.crt chmod 600 *
配置虛擬主機(jī)
我們將在 "/usr/local/www/bugzilla" 目錄里安裝 bugzilla,所以我們必須為它創(chuàng)建新的虛擬主機(jī)配置,前往 apache 目錄并為虛擬主機(jī)文件創(chuàng)建名為 "vhost" 的新目錄:
cd /usr/local/etc/apache24/
mkdir vhost; cd vhost
現(xiàn)在為虛擬主機(jī)文件創(chuàng)建新文件 "bugzilla.conf":
nano -c bugzilla.conf
將以下配置粘貼進(jìn)去:
ServerName mybugzilla.me
ServerAlias www.mybuzilla.me
DocumentRoot /usr/local/www/bugzilla
Redirect permanent / https://mybugzilla.me/
Listen 443
ServerName mybugzilla.me
DocumentRoot /usr/local/www/bugzilla
ErrorLog "/var/log/mybugzilla.me-error_log"
CustomLog "/var/log/mybugzilla.me-access_log" common
SSLEngine On
SSLCertificateFile /usr/local/etc/apache24/ssl/bugzilla.crt
SSLCertificateKeyFile /usr/local/etc/apache24/ssl/bugzilla.key
AddHandler cgi-script .cgi
Options +ExecCGI
DirectoryIndex index.cgi index.html
AllowOverride Limit FileInfo Indexes Options
Require all granted
保存并退出,上述都完成之后,為 bugzilla 安裝創(chuàng)建新目錄,并在 httpd.conf 文件添加虛擬主機(jī)配置來啟用 bugzilla虛擬主機(jī),在 "apache24" 目錄下運(yùn)行以下命令:
mkdir -p /usr/local/www/bugzilla
cd /usr/local/etc/apache24/
nano -c httpd.conf
文末,添加以下配置:
Include etc/apache24/vhost/*.conf
保存并退出,現(xiàn)在用 "apachectl" 命令測試一下 apache 的配置并重啟它:
apachectl configtest
service apache24 restart
安裝 Bugzilla
我們可以通過下載源來手動(dòng)安裝 bugzilla 了,或從 freebsd 庫中安裝也可以,在這一步中我們將用 pkg 命令從 freebsd 庫中安裝 bugzilla:
pkg install bugzilla50
以上步驟都完成之后,前往 bugzilla 安裝目錄并安裝所有 bugzilla 需要的 perl 模塊。
cd /usr/local/www/bugzilla
./install-module --all
要等到所有都完成,這需要點(diǎn)時(shí)間,下一步,在 bugzilla 的安裝目錄中執(zhí)行 "checksetup.pl" 文件來生成配置文件 "localconfig"。
./checksetup.pl
你會(huì)看到一條關(guān)于數(shù)據(jù)庫配置錯(cuò)誤的消息,你得用 nano 編輯器編輯一下 "localconfig" 文件:
nano -c localconfig
現(xiàn)在添加第三步創(chuàng)建的數(shù)據(jù)庫。 #第57行 $db_name = 'bugzilladb'; #第60行 $db_user = 'bugzillauser'; #第67行 $db_pass = 'bugzillauser@'; 保存并退出,然后再次運(yùn)行 "checksetup.pl":
./checksetup.pl
你會(huì)收到輸入郵箱名和管理員賬號的提示,你只要輸入你的郵箱、用戶名和密碼就行了。
最后,我們需要把安裝目錄的屬主改成 "www",然后用服務(wù)命令重啟 apache:
cd /usr/local/www/
chown -R www:www bugzilla
service apache24 restart
現(xiàn)在 Bugzilla 已經(jīng)安裝好了,你可以通過訪問 mybugzilla.me 來查看,并且將會(huì)重定向到 https 連接。 Bugzilla 首頁:
Bugzilla admin 面板:
結(jié)論
Bugzilla 是一個(gè)基于 web 的應(yīng)用,并能幫助你管理軟件開發(fā),它用 perl 開發(fā)并以 MySQL 作為數(shù)據(jù)庫系統(tǒng)。Bugzilla 幫助 mozilla、redhat、gnome 等公司完成軟件開發(fā)工作。Bugzilla 有很多功能并易于配置和安裝。