目的: 安裝 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"
# 檢查是否所有項目皆為綠色的GOOD
# 將 admin 目錄移除
rm -rf /var/www/html/mantis/admin
5. 第一次登入Mantis
# 以瀏覽器打開網頁: http://<server ip or name>/mantis, 並以預設的帳號密碼 (administrator/root) 登入
# 登入會先到建立新專案的畫面, 此時不急著建立專案, 請先改administrator的密碼. 更改完畢後會被自動登出系統, 並回到登入畫面, 此時請以新的密碼登入
# 將 Administrator 的 Username 修改為一個已經存在的 AD 的帳號 (直接用 Domain Administrator 登入? 不好吧 ~"~), 例如 IssueAdmin
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)
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 收工
留言列表