2017年2月19日 星期日

安裝Mantis作為事件追蹤系統

最近開會一直有橫向聯繫不夠的問題發生,因此老闆指示要加強各單位橫向聯繫的功能。
所以打算導入Mantis讓「支票攤在陽光下,自己開的支票自己坦」

1. 安裝 CentOS 7.3.1611 使用最小安裝,設定固定IP

2. 修改 /etc/selinux/config 將模式改為 permissive

3. 使用yum安裝所需的套件 net-tools unzip wget  mariadb-server httpd php php-pdo php-mysql

4. 設定服務開機啟動 systemctl enable httpd

5. 啟動服務 systemctl start mariadb

6. 關閉防火牆 systemctl disable firewalld  (好孩子不要學)

7. 下載 mantisbt-2.1.0.zip 解壓縮放置到 /var/www/html/

8. 下載 adminer.php 放置到 /var/www/html/

9. 使用adminer登入mariadb建立一個新的資料庫與使用者

10. 使用瀏覽器連接到mantis目錄會導向installer

11. 依照installer的引導完成mantis初始化

12. 最後需要將config.inc.php內容放置到 /var/www/html/mantis/config/config_inc.php

13. 預設帳號為administrator 密碼為 root

以上就是基本安裝




Mantis 設定

Mantis的設定多數在Web介面中是無法修改的,需要修改config/config_inc.php
這部分網路上的文件寫得不多,底下就個人規劃上需要修改的設定

1. 公開的URL,這個URL會用在寄送通知郵件中
$g_path = 'https://mantis.null.tw/mantis/';

2. 使用者偏好的時區
$g_default_timezone = 'Asia/Taipei';

3.畫面左上角顯示的Title
$g_window_title = '事件追蹤系統';

4. 停用上傳檔案功能 (因為內部已經有共享資料用的NAS不希望資料分散在兩邊)
$g_allow_file_upload = 'OFF';

5. 將建立專案預設為「未公開」,除非是系統管理員或者加入名單否則看不到專案內容
$g_default_project_view_status = VS_PRIVATE;

6. 郵件發送設定
$g_from_email                       = 'proj@null.tw';//郵件顯示的寄件者信箱
$g_phpMailer_method           = PHPMAILER_METHOD_SMTP ;//使用SMTP模式發信
$g_smtp_host                         = '192.168.30.25';
$g_smtp_username                = 'proj';
$g_smtp_password                = 'projpwd';
$g_smtp_connection_mode   = '';//連線模式是否使用SSL或TLS加密,空字串表示不加密
$g_smtp_port                         = 25;

7. 限制用來註冊的 Email Domain
$g_limit_email_domains        = array('mail.com');

更多設定可以參考
https://www.mantisbt.org/manual/index.html

8. 啟用SSL連線需要安裝mod_ssl 這個apache的模組
要設定使用Let's Encrypt的憑證可以使用certbot這個工具
https://certbot.eff.org/#centosrhel7-apache


可能需要Patch的地方

1. 目前2.1版本停用上傳功能時,在新增問題頁面會跳出 dropzone not supported 的對話框
修改 js/common.js 的531行加上註解即可
//alert( form.data('dropzone-not-supported') );
這個Issue 已經被確認,後續版本應該會修正

2. 如果有些SMTP主機無法使用特定認證模式,使用phpmailer可以自動偵測但有時依然無法動作,在 core/email_api.php 的1213行後面加入AuthType
 Line  1213    $t_mail->SMTPAuth = true;
 Line  1214    $t_mail->AuthType = 'PLAIN';