[Server] MantisBT 2.9 架設 with Postfix (Apache2 + php7 + PostgreSQL on Ubuntu 16.04)

Nale Raphael
7 min readDec 19, 2017

--

  • 此文適合的對象: 對Ubuntu稍微熟悉的新手
  • 關於Apache2 + php7 + PostgreSQL環境的建立,之後會再發文章說明

網路上已有許多架設MantisBT的教學,但目前為止自己所看過的文章,裡面提到mail service的幾乎都是透過gmail處理。可是對於一個公司/團隊來說,儘量還是用一個公用的服務來處理比較好(自己的觀點啦),所以這篇談到的mail service就選擇使用Postfix來處理囉!

Mail server — Postfix

網路上已經有蠻多關於”如何在Ubuntu上建立Postfix郵件伺服器”的文章了,這裡是參考 Shunze學園 — 《分享》Ubuntu架設mail server 設定的喔!
(後續有空再補充我的設定)

Mantis Bug Tracker

雖然官方的文件很齊全,但是對於一個新手來說,還是會有很多不了解的地方…這也是我決定要把這次架設的過程紀錄下來的原因,希望能讓其他跟我一樣的新手少碰些壁囉!

  1. 先到官網下載MantisBT ,完成後應該會儲存在 /home/[your_name]/Downloads/ 這個資料夾底下

2. 到該資料夾底下,將檔案解壓縮

$ cd /home/your_name/Downloads
$ tar -zxvf mantisbt-x.x.x.tar.gz

3. 把該資料夾移動到/var/www/html/底下並重新命名為mantis

$ mv mantisbt-x.x.x /var/www/html/mantis

4. 開啟網頁瀏覽器,到[your_ip]/mantis。這時就可以看到MantisBT的安裝頁面囉!

5. 接著,就填好下方Installation Options的內容,再按最下方的Install/Upgrade Database按鈕即可。
Type of Database: 選擇`pgsql`
Hostname: 填localhost即可
Username: 給MantisBT使用的資料庫帳號,建議另外新建立一個
Password: 上述帳戶的密碼
Admin Username: 當初建立PostgresSQL時第一個建立的帳號
Admin password: 上述帳號的密碼
Default Time Zone: 就依據自己的時區選擇囉

不過,在這個步驟理最常見的問題有以下兩個:
(請參考官方安裝文件2.4. New Installation的說明)

填寫的Admin username不具有最低要求的權限
填寫的Database Username不具有最低要求的權限
  • 解決方法:登入資料庫新增user或修改user的權限即可
    * 可先在terminal用psql進入PostgresSQL,再用指令\du查看目前所有使用者
    * 新增user: CREATE USER name [ [ WITH ] option [ ... ] ]
    * 修改user權限: ALTER USER name [ [ WITH ] option [ … ] ]

6. 上述的問題解決後,應該都可以正常安裝完成,然後進入下一個頁面。
在這個頁面中的Write Configuration File(s)的部份,可以看到系統會自動產生一段需要你自己去寫入config_inc.php的內容。
如果你的建置步驟中也如下圖出現了POSSIBLE PROBLEM: Cannot write /var/www/html/mantis/config/config_inc.php,不用擔心,就自己到那的資料夾底下新增一個config_inc.php並將下方的內容貼上就好。

將上圖中左方的內容依照指示放到`/var/www/html/mantis/config/config_inc.php’裡即可(注意:這裡的內容只是示範用,請照著自己設定跑出的結果去修改config_inc.php)

7. 接著請到[your_ip]/mantis/admin/check/index.php,在這個頁面可以看到有哪些東西還需要修正的。
在下圖中Email的部份,可以看到測試結果都是FAIL,這是因為在上一步驟中新增的config_inc.php還沒有設定到email service的參數,所以系統是先以MantisBT預設的參數進行測試而產生這樣的結果。

但由於我們已經先建立好Postfix郵件伺服器了,所以我們只要再多設定幾個參數就ok囉!需要增加的參數如下(一樣是寫進config_inc.php,各參數的用途細節可以到官方文件5.8 Email查看):

$g_phpMailer_method  = PHPMAILER_METHOD_SMTP;$g_smtp_host         = 'localhost';
$g_smtp_port = 25; # depend on your setting of postfix, default: 25
$g_webmaster_email = 'hostname@your_domain';
$g_from_name = 'Bug Tracker'; # sender name of an email
$g_from_email = 'hostname@your_domain';
$g_return_path_email = 'hostname@your_domain';
$g_allow_signup = ON;
$g_send_reset_password = ON; # this should be `ON` if user sign up is enabled
$g_enable_email_notification = ON;
$g_upload_max_filesize = 2097152; # unit: byte
$g_max_file_size = 2097152; # unit: byte

其中比較值得注意的是g_webmaster_email這幾項email address的設定。
因為團隊/公司可能還沒有申請到一個可用的domain,所以會不曉得這些email address到底要怎麼設定。
其實,如果架設的Postfix是要當作一個只發不收的郵件伺服器的話,這幾項email address是可以隨意(?)設定的,因為寄發email是可以不需要domain的
所以即使你的團隊/公司沒有去申請domain,你都還是可以先將其設定成像是no-reply@mycompany.com這樣的型式,只是收件者就沒辦法回信給你囉!

8. 以上,基本的設定都已經完成了。接著就可以到[yout_ip]/mantis/login_page.php試著用email註冊一個帳號,並到該email信箱中看有沒有收到來自MantisBT的信囉!

補充

  • Port forwarding (virtual server)
    如果你的伺服器ip不是直接的對外ip,而是透過router分配的(如192.xxx.xxx.xxx),那麼你可能還需要做這個設定…
  • 查詢電腦的對外ip
    常見的方式是直接在google打myip,到第三方網站去看自己電腦的對外ip是什麼。不過,你也可以直接在terminal打curl icanhazip.com來查詢喔!

--

--