我們公司有使用 Bugzilla 做為 User 電腦障礙排除的記錄單,最近要準備從 Windows 上轉移到 Linux 上,於是開始研究 Bugzilla。
一、確定已安裝套件
1. Perl
2. sendmail
3. MySQL
1. Perl
2. sendmail
3. MySQL
二、下載 Bugzilla 套件
可以到 http://www.bugzilla.org 下載最新的套件。
可以到 http://www.bugzilla.org 下載最新的套件。
三、安裝
1. 首將 Bugzilla 下載至 /var/www/html/ 的目錄下,並解壓縮。
# cd /var/www/html
# tar zxvf bugzilla-2.22.tar.gz
# mv bugzilla-2.22 bugzilla
1. 首將 Bugzilla 下載至 /var/www/html/ 的目錄下,並解壓縮。
# cd /var/www/html
# tar zxvf bugzilla-2.22.tar.gz
# mv bugzilla-2.22 bugzilla
2. 執行 Perl 模組檢查程式
# cd bugzilla
# ./checksetup.pl --check-modules
Checking perl modules ...
Checking for AppConfig (v1.52)
.....
The following Perl modules are optional:
Checking for GD(v1.20) ....
# cd bugzilla
# ./checksetup.pl --check-modules
Checking perl modules ...
Checking for AppConfig (v1.52)
.....
The following Perl modules are optional:
Checking for GD(v1.20) ....
3. 安裝所需的 Perl 模組,由 checksetup.pl 列出未安裝的 module,如缺 AppConfig...
# perl -MCPAN -e 'install "AppConfig"'
....
Are you ready for manual configuration?[yes] no <- 第一次安裝會詢問是否要手動設定安裝
....
/usr/bin/make install -- OK <- 若無 Error 則出現安裝完成
# perl -MCPAN -e 'install "AppConfig"'
....
Are you ready for manual configuration?[yes] no <- 第一次安裝會詢問是否要手動設定安裝
....
/usr/bin/make install -- OK <- 若無 Error 則出現安裝完成
依照以上方法將未安裝的 module 安裝完畢。
補充:
1) 由於此線上更新是以 ftp 協定安裝,若公司的環境不允 passive ftp,則請修改以下檔案紅色部份。
# vi /usr/lib/perl5/version/Net/libnet.cfg
'ftp_int_passive' => 0,
2) 若使用 perl 無法順利安裝,可到 google 尋找此模組相關的套件,再用 yum 來安裝,如 Date::Format 無法安裝,到 google 搜尋「Date::Format +rpm」,知道套件名稱後再使用 yum install package。
1) 由於此線上更新是以 ftp 協定安裝,若公司的環境不允 passive ftp,則請修改以下檔案紅色部份。
# vi /usr/lib/perl5/version/Net/libnet.cfg
'ftp_int_passive' => 0,
2) 若使用 perl 無法順利安裝,可到 google 尋找此模組相關的套件,再用 yum 來安裝,如 Date::Format 無法安裝,到 google 搜尋「Date::Format +rpm」,知道套件名稱後再使用 yum install package。
3) 其中 Template 及 Image::Magick 兩個模組安裝過程可能出現問題無法順利安裝,筆者使用 yum install perl-Template-Toolkit 與 yum install ImageMagick-perl 順利安裝完成。
4) 若使用 MySQL 則要增加「DBD::mysql」模組,使用 PostgreSQL 則要增加「DBD::Pg」模組。
4. 設定 MySQL
1) 修改 /etc/my.cnf
# vi /etc/my.cnf
[mysqld]
skip-networking <- 若不須要連線到 mysql 可關閉網路服務
max_allowed_packet=1M
1) 修改 /etc/my.cnf
# vi /etc/my.cnf
[mysqld]
skip-networking <- 若不須要連線到 mysql 可關閉網路服務
max_allowed_packet=1M
2) 新增 Bugzilla 的 DataBase 及 Admin 管理者
# service mysqld start
# mysql -u root -p
Enter password: <- 密碼空白,直接按 Enter
mysql> create database bugs;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';
mysql> flush privileges;
mysql> exit
Bye
# service mysqld start
# mysql -u root -p
Enter password: <- 密碼空白,直接按 Enter
mysql> create database bugs;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';
mysql> flush privileges;
mysql> exit
Bye
或是以指令
# mysql -u root -ppassword -e "create database bugs"
# echo "GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';" > bugs.txt
# mysql -u root -ppassowrd < bugs.txt
# mysql -u root -ppassword -e "create database bugs"
# echo "GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';" > bugs.txt
# mysql -u root -ppassowrd < bugs.txt
5. 修改 localconfig
# vi /var/www/html/bugzilla/localconfig
$db_host = 'localhost';
$db_name = 'bugs';
$db_user = 'bugs';
$db_pass = 'bugs_password';
# vi /var/www/html/bugzilla/localconfig
$db_host = 'localhost';
$db_name = 'bugs';
$db_user = 'bugs';
$db_pass = 'bugs_password';
6. 執行 ./checksetup.pl
# ./checksetup.pl
Checking user setup ...
....
Enter the e-mail address of the administrator: admin@e-mail.address <- 第一次登入 Bugzilla 的系統管理者帳號 You entered admin@e-mail.address. Is this correct?[Y/n] y Enter the real name of the administrator: <- 管理者名稱
Enter a password for the administrator account: **** <- 管理者的密碼
Please retype the password to verify: ****
# ./checksetup.pl
Checking user setup ...
....
Enter the e-mail address of the administrator: admin@e-mail.address <- 第一次登入 Bugzilla 的系統管理者帳號 You entered admin@e-mail.address. Is this correct?[Y/n] y Enter the real name of the administrator: <- 管理者名稱
Enter a password for the administrator account: **** <- 管理者的密碼
Please retype the password to verify: ****
7. 設定 Apache
# vi /etc/httpd/conf/httpd.conf
<Directory /var/www/html/bugzilla>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
# vi /etc/httpd/conf/httpd.conf
<Directory /var/www/html/bugzilla>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
8. 將 Apache 及 MySQL 重新啟動
# service mysqld restart
# service httpd restart
四、AD 帳號整合
此整合參數以 Bugzilla 3.0 為例,Bugzilla 3.0 安裝步驟與上述 Bugzilla 2.22 相同,Bugzilla 使用 LDAP 整合 AD 帳號。
1. 以管理者身份登入 Bugzilla,點選「Parameters」進行參數設定。
2. 選擇「User Authentication」,修改下列參數:
user_verify_class:LDAP,DB
此參數設定 Bugzilla 先以 LDAP 進行身份驗證,若驗證失敗則向 Bugzilla DB 進行身份驗證。
# service mysqld restart
# service httpd restart
四、AD 帳號整合
此整合參數以 Bugzilla 3.0 為例,Bugzilla 3.0 安裝步驟與上述 Bugzilla 2.22 相同,Bugzilla 使用 LDAP 整合 AD 帳號。
1. 以管理者身份登入 Bugzilla,點選「Parameters」進行參數設定。
2. 選擇「User Authentication」,修改下列參數:
user_verify_class:LDAP,DB
此參數設定 Bugzilla 先以 LDAP 進行身份驗證,若驗證失敗則向 Bugzilla DB 進行身份驗證。
3. 選擇「LDAP」,修改下列參數:
LDAPserver:10.1.1.1 <輸入 AD 主機的 IP>
LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
LDAPBaseDN:ou=Users,dc=company,dc=com <輸入欲開始搜尋的根路徑>
LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值> LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>
LDAPserver:10.1.1.1 <輸入 AD 主機的 IP>
LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
LDAPBaseDN:ou=Users,dc=company,dc=com <輸入欲開始搜尋的根路徑>
LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值> LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>
4. 選擇「Email」,修改下列參數:
mail_delivery_method:SMTP <郵件伺服器寄信類型>
mailfrom:bugs@company.com <寄件者Mail>
sendmailnow:On
smtpserver:mail.company.com <郵件伺服器位址>
五、單一樹系多網域整合
若系統不支援多網域整合,就必須在各網域獨立架設一台伺服器,而 Bugzilla 須修改參數讓它支援多網域。
1. 在「LDAP」參數中,修改下列參數
LDAPserver:10.1.1.1:3268 <輸入具有 GC 角色的 AD 主機 IP,並指定 Port Number >
LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
LDAPBaseDN:dc=com <輸入欲開始搜尋的根路徑>
LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值>
LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>
mail_delivery_method:SMTP <郵件伺服器寄信類型>
mailfrom:bugs@company.com <寄件者Mail>
sendmailnow:On
smtpserver:mail.company.com <郵件伺服器位址>
五、單一樹系多網域整合
若系統不支援多網域整合,就必須在各網域獨立架設一台伺服器,而 Bugzilla 須修改參數讓它支援多網域。
1. 在「LDAP」參數中,修改下列參數
LDAPserver:10.1.1.1:3268 <輸入具有 GC 角色的 AD 主機 IP,並指定 Port Number >
LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
LDAPBaseDN:dc=com <輸入欲開始搜尋的根路徑>
LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值>
LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>
沒有留言:
張貼留言