目的: 安裝 Mantis, 並使用 Windows AD 認證

1. 安裝 CentOS 7

2. 安裝元件

#
# 以 ssh 登入 Linux Server
#

# 安裝 Mariadb (替代 MySQL 的 Database)

yum -y install mariadb mariadb-server mariadb-libs

# 安裝 Apache Web Server

yum -y install httpd mod_dav_svn

# 安裝 PHP

yum -y install php php-bcmath php-cli php-common php-enchant php-gd php-intl php-ldap php-mbstring php-mysql php-pdo php-pear php-process php-pspell php-recode php-soap php-xml php-xmlrpc rrdtool-php uuid-php php-pecl-memcache​ php-devel

# 安裝中文字型 (讓統計圖表可以正常顯示中文)

mkdir /usr/share/fonts/truetype
wget http://www.study-area.org/apt/firefly-font/fireflysung-1.3.0.tar.gz
tar xvzf fireflysung-1.3.0.tar.gz
cp fireflysung-1.3.0/fireflysung.ttf /usr/share/fonts/truetype/arial.ttf

 

3. 設定執行環境

# 設定 vi 可以編輯中文 (需要在 vi 編輯中文才需設定)

cat > ~/.vimrc <<EOF
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,big5,latin1
set fileencoding=utf-8
set termencoding=big5
EOF


# 設定 Mariadb 於開機時自動啟動

systemctl start mariadb
systemctl enable mariadb


# 設定 mariadb root 的密碼
mysqladmin -u root password '<root的密碼>'

# 登入 Mariadb
mysql -u root -p

# 建立資料庫, 登入的User與密碼
create database mantis;
grant all on mantis.* to mantisdbuser@localhost;
set password for mantisdbuser@localhost = PASSWORD('<mantisdbuser的密碼>');
flush privileges;
exit;

# 設定 httpd 於開機時自動啟動

systemctl start httpd
systemctl enable httpd

# 設定防火牆, 開通 80/TCP 與 443/TCP

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

# 設定 PHP

# 提高 File Upload 檔案大小的上限到20MB
# vi /etc/php.ini
# 修改 upload_max_filesize = 20M
# 修改 max_file_uploads = 20
# 修改 post_max_size = 20M
# 修改 max_execution_time = 60
# 修改 memory_limit = 512M
# 修改 date.timezone 參數, 改為 date.timezone = 'Asia/Taipei'

# 重新啟動 httpd
systemctl restart httpd

 

4. 安裝 Mantis

# 下載 mantis (撰寫本文章時, 最新版本為 1.2.19)

wget -O ~/mantis.tar.gz http://sourceforge.net/projects/mantisbt/files/mantis-stable/1.2.19/mantisbt-1.2.19.tar.gz/download
cd /var/www/html/
tar -xvzf ~/mantis.tar.gz
mv mantisbt-1.2.19 mantis
mkdir /var/www/html/mantis/log # 放置郵件寄送的紀錄

mkdir /var/www/html/mantis/attachment # 放置 Issus 的附件. 若想把附件直接放 Database (這樣建立專案比較簡單), 則此步驟可以省略
chown -R apache.apache mantis

# 設定 SELinux

chcon -R -t httpd_sys_rw_content_t mantis
setsebool -P httpd_can_sendmail on
setsebool -P httpd_can_network_connect on
chcon -R --reference /var/www/html/mantis /usr/share/fonts/truetype

# 以瀏覽器打開網頁: http://<server ip or name>/mantis/admin/install.php

# 輸入以下資料:
# 1. Checking Installation 的兩個項目必須為綠色的GOOD
# 2. Username (for database) 輸入: mantisdbuser
# 3. Password (for database) 輸入: <mantisdbuser>的密碼
# 4. Database name (for database) 輸入: mantis
# 5. Admin Username (to create Database if required): 輸入: root
# 6. Admin Password (to create Database if required): 輸入: <root的密碼>
# 最後按 "Install/Upgrade Database"

Mantis Install 1  

# 檢查是否所有項目皆為綠色的GOOD

Mantis Install 2  

# 將 admin 目錄移除

 rm -rf /var/www/html/mantis/admin

 

5. 第一次登入Mantis

以瀏覽器打開網頁: http://<server ip or name>/mantis, 並以預設的帳號密碼 (administrator/root) 登入

 Mantis Login  

 # 登入會先到建立新專案的畫面, 此時不急著建立專案, 請先改administrator的密碼. 更改完畢後會被自動登出系統, 並回到登入畫面, 此時請以新的密碼登入

 Mantis Change Admin PWD  

 # 將 Administrator 的 Username 修改為一個已經存在的 AD 的帳號 (直接用 Domain Administrator 登入? 不好吧 ~"~), 例如 IssueAdmin

 Mantis Show Admin Detail   


Mantis Rename Administrator  

 6. 修改 /var/www/html/mantis/config_inc.php, 新增以下設定 (注意 <> 部分要修改以符合環境現況)

 

          # 設定透過 AD/LDAP 認證與帳號
        $g_login_method = LDAP;
        $g_ldap_server = 'ldap://192.168.1.1:389/'; # Microsoft AD Domain Controller
        #$g_ldap_port = 3268; # for AD Global Catalog Server (GC)
        $g_ldap_root_dn = 'cn=Users,dc=example,dc=com'; # 看 Users 是放在哪個位置
        $g_ldap_bind_dn = '<My Domain>\<任一個Domain User>'; # 用來連接並查詢 AD 的帳號, 給一般 User 即可
        $g_ldap_bind_passwd = '<My Domain>\上述Domain User的密碼>'; 
        $g_use_ldap_email = ON; # 用 AD 帳號的 Mail 作為 Mantis 裡面的 Mail
        $g_ldap_uid_field = 'sAMAccountName';
        $g_ldap_realname_field = 'cn'; # 以 AD 帳號的 CN 屬性做為顯示名稱
        $g_use_ldap_realname = ON; # 用 AD 帳號的顯示名稱 (CN) 顯示在 Mantis 上
        $g_ldap_organization = '';
        $g_ldap_protocol_version = 3;
        $g_allow_signup = OFF; # 設定不可申請帳號 (用AD/LDAP帳號登入就自動建立帳號, 因此不須申請)
        $g_send_reset_password = OFF; # 
設定不可以重設 Password (因為 Password 是 AD/LDAP 在控制, Mantis 不能修改)

        # 設定傳送郵件的方式與寄件人

        $g_administrator_email  = 'IssueAdmin@example.com';
        $g_webmaster_email      = 'IssueAdmin@example.com';
        $g_from_email      = 'IssueAdmin@example.com'; # Mantis 以誰的名義寄信 (From)
        $g_return_path_email    = 'IssueAdmin@example.com';
        $g_phpMailer_method = 2;
        $g_smtp_host = '192.168.1.2'; # SMTP 的位置
        $g_smtp_username = ''; # 若 SMTP 需要登入, 則於此設定登入 SMTP 的帳號
        $g_smtp_password = ''; # 若 SMTP 需要登入, 則於此設定登入 SMTP 的密碼
        $g_enable_email_notification = ON;
        $g_log_destination = 'file:/var/www/html/mantis/log/mail.log'; # 寄信後留個紀錄
        $g_log_level = LOG_EMAIL_RECIPIENT;

             # 檔案上傳設定

        $g_allow_file_upload = ON; # 允許上傳檔案
        $g_max_file_size = 20000000; # 設定上傳檔案的大小限制 (最大20M), 除此之外, 前面章節的 php.ini 亦需有相對應的設定
        $g_file_upload_max_num = 10; # 最多可同時上傳10個檔案        
        $g_file_upload_method = DATABASE; # 上傳檔案放置的位置為資料庫. 若想放在 File System, 則設為 DISK
        $g_absolute_path_default_upload_folder = '/var/www/html/mantis/attachment'; # 上傳檔案的目錄, $g_file_upload_method = DISK 時需要設定
        $g_preview_attachments_inline_max_size = 5120000; # 超過 512KB 的圖形檔不允許預覽

        # 打開 Time Tracking 功能 (負責解決 Issue 的人可以輸入處理 Issue 所耗的工時)

        $g_time_tracking_with_billing = ON;
        $g_time_tracking_enabled = ON;
        $g_time_tracking_stopwatch = ON;
        $g_time_tracking_view_threshold = DEVELOPER;
        $g_time_tracking_edit_threshold = DEVELOPER;
        $g_time_tracking_reporting_threshold = MANAGER;
        $g_time_tracking_without_note = OFF;

        # 其他設定

        $g_path = 'http://<網址>/mantis/'; # 網址
        $g_max_failed_login_count = 5; # 登入失敗最多五次, 超過鎖帳 (Mantis 的帳號)
        $g_show_version = OFF; # 不要顯示 Mantis 版本 (網路安全考慮)
        $g_default_language = 'english'; # 新建立的使用者預設語系 (若要改為中文則設定為 'chinese_traditional')
        $g_window_title = ' <顯示在瀏覽器上方的文字>'; # 瀏覽器標題顯示的文字
        $g_show_realname = ON; # 顯示使用者的顯示名稱 (預設是顯示登入帳號, 通常是一串難記的號碼)
        $g_short_date_format = 'Y/m/d'; # 短日期格式
        $g_normal_date_format = 'Y/m/d H:i'; # 一般日期格式
        $g_complete_date_format = 'Y/m/d H:i'; # 長日期格式
        $g_session_validation = OFF; # 是否驗證 Session
        $g_cookie_domain = '.<網址>'; # 設定 Cookie 的 Domain


7. 改以 PDMAdmin/<PDMAdmin的密碼> 登入, 以驗證上述的設定是否正確

8. 安裝外掛模組 (Export/Import, Graph)


Mantis Manage Plugin

9. 安裝 Xdebug

裝這個是為了後續要開發 Mantis Plugins 時用來方便除錯的, 若沒有自行開發 Plugins 的需求 (通常不會有), 請忽略本節

#
# 以 ssh 登入 Linux Server
#
# 安裝 Xdebug
#

pecl install Xdebug

#
# 修改 /etc/php.ini, 新增以下設定
#

[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=<你的 PHP IDE 的電腦 IP>
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.overload_var_dump=0

 

10.  Ok 收工

 


 

創作者介紹

Egg Chang 的部落格

Egg Chang 發表在 痞客邦 PIXNET 留言(0) 人氣()