此一系列將會在 CentOS 7 上面,安裝 LAMP ( Linux + Apache + Mariadb + PHP ) 的架構,搭配 Mantis 成為 Issue tracking 的主機
完全前面的環境預備之後,那接下來就可以安裝 Mantis 並做相關的設定了。
1. 下載 Mantis ( 等了好久總算到 1.3.0 的正式版了 )
cd /tmp
wget http://downloads.sourceforge.net/project/mantisbt/mantis-stable/1.3.0/mantisbt-1.3.0.tar.gz
tar zxvf mantisbt-1.3.0.tar.gz
2. 設定資料庫帳號 : 利用 mysql 的工具程式,建立一個帳號專門給 Mantis 可以用來存取資料庫的帳號 ( 在部分狀況下有可能造成無法使用 localhost 來連接 mysql,避免這樣的問題發生,這裡我們會多建立一組 127.0.0.1 的範圍也可以登入主機。
CREATE USER 'issue'@'localhost' IDENTIFIED BY 'Password';
CREATE USER 'issue'@'127.0.0.1' IDENTIFIED BY 'Password';
3. 解開 Mantis 壓縮檔案
mkdir /var/apache2
mv mantisbt-1.3.0 /var/apache2/.
chown -R apache.apache /var/apache2/mantisbt-1.3.0
4. 修改 Apache 的參數,指定一個目錄名稱對應到 Mantis,在這個範例中我們指定路徑名稱為 issue
vi /usr/local/apache2/conf/httpd.conf
在檔案的最後加上設定,因為在 Linux 下會區分大小寫,這裡我就偷懶自己指定三種可能的組合對應到 mantisbt-1.3.0 的目錄
Alias /issue "/var/apache2/mantisbt-1.3.0"
Alias /Issue "/var/apache2/mantisbt-1.3.0"
Alias /ISSUE "/var/apache2/mantisbt-1.3.0"
<Directory "/var/apache2/mantisbt-1.3.0">
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
設定好之後,就可以透過指令重新啟動 Apache
systemctl restart apache2
5. Mantis 的初始化設定:
當前面相關設定完成之後,就可以開啟瀏覽器連上 mantis,他會判斷如果是第一次使用,則會自動進入到安裝的畫面,這裡將相關參數提入之後,就可以按下下方 「Install/Upgrade Database」的設定來建立 Mantis 所需要的資料庫了。
在我自己的安裝幾次的過程中,發現部分狀況下可能上述的設定會出現錯誤 "BAD: Does administrative user have access to the database? ( No such file or directory )",那是因為名稱解析的問題,因此可以將 Hostname 改成 127.0.0.1 ,就可以正常的去建立了。
6. 登入系統:
當建立好資料庫之後,就可以正常來登入系統使用,預設的帳號是 administrator,密碼是 root。因此如果可以正常當入之後,要記得趕快去修改密碼
正常完成上述相關步驟之後,就可以完成設定,但如果要更好的使用,建議可以做一些修正
1. 將 mantis 下的 admin 目錄給 rename,避免其他人員透過該目錄下的程式去攻擊系統。設定好之後,最好將預設的語言指定成為你想要的,這樣相關的通知信件才會使用你要想的語言,一般我都會預設為繁體中文。
# --- Language --------------------
$g_default_language = "chinese_traditional";
2. 設定 Mail 通知相關設定,預設是採用 Linux 內建的 sendmail,但如果要搭配其他的 Mail 系統的話,可以自行在 config_inc.php 內加入設定,目前我採用 gmail 來做通知,因此要調整部分設定
# --- Email Configuration ---
$g_phpMailer_method = PHPMAILER_METHOD_SMTP;
$g_smtp_host = 'smtp.gmail.com';
$g_smtp_username = 'gmailaccount@gmail.com';
$g_smtp_password = 'gmailpassword';
$g_smtp_connection_mode = 'ssl';
$g_smtp_port = 587;
$g_webmaster_email = 'yourmail@gmail.com';
$g_from_email = 'yourmail@gmail.com';
$g_return_path_email = 'yourmail@gmail.com';
$g_from_name = 'Issue Tracker';
3. 預設附件會存在資料庫內,因此避免資料庫過大,以及後續管理上的方便,建議可以規劃一個目錄來存放附件
$g_allow_file_upload = ON;
$g_file_upload_method = DISK;
$g_absolute_path_default_upload_folder = '/var/apache2/mantis-files/'; # used with DISK, must contain trailing \ or /.
$g_max_file_size = 10000000; # 10MB
4. 大部分 mantis 都可以靠一些參數設定就好了,但如果要調整流程,像是中間增加或減少一些處理狀態,那就需要比較複雜一點的設定,以增加一個狀態為例:
- 修改 custom_constants_inc.php 檔 ( 如果不存在則在 config 目錄下增加一個 )
<?php # Custom status code define( 'VERIFIED', 70 ); ?>
- 修改 config_inc.php 檔 ( 雖然有些狀態沒有更動,但仍然要列出,否則會造成畫面上顯示異常 )
-
# 設定每個狀態和代號 $g_status_enum_string = '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,70:verified,80:resolved,90:closed'; # 指定新狀態的顏色 $g_status_colors['verified'] = '#ACE7AE'; # 設定每個狀態可往那些狀態改變 $g_status_enum_workflow[NEW_]='20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved'; $g_status_enum_workflow[FEEDBACK] ='10:new,30:acknowledged,40:confirmed,50:assigned,80:resolved'; $g_status_enum_workflow[ACKNOWLEDGED] ='20:feedback,40:confirmed,50:assigned,80:resolved'; $g_status_enum_workflow[CONFIRMED] ='20:feedback,50:assigned,80:resolved'; $g_status_enum_workflow[ASSIGNED] ='20:feedback,70:verified,80:resolved,90:closed'; $g_status_enum_workflow[VERIFIED] ='50:assigned,80:resolved'; $g_status_enum_workflow[RESOLVED] ='50:assigned,90:closed'; $g_status_enum_workflow[CLOSED] ='50:assigned';
5. 為了方便查看 Mantis 執行過程中是否有異常,可以考慮設定開啟 Log 檔案:要注意該 Log 檔案必須要先事先產生,並且指定可以讓 apache 具有可以有讀寫的權限。
$g_log_level = LOG_EMAIL | LOG_EMAIL_RECIPIENT | LOG_FILTERING | LOG_AJAX;
$g_log_destination = 'file:/usr/local/apache2/logs/mantis.log';