[Linux]在 CentOS 7 上安裝 Mantis - 04. mantis 的安裝與設定

此一系列將會在 CentOS 7 上面,安裝 LAMP ( Linux + Apache + Mariadb + PHP ) 的架構,搭配 Mantis 成為 Issue tracking 的主機

  1. mariadb 的安裝步驟
  2. apache 的安裝步驟
  3. php 的安裝步驟
  4. mantis 的安裝與設定

完全前面的環境預備之後,那接下來就可以安裝 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';