hMailServer - roundcube webmail 安裝篇
安裝 roundcube 來為 hMailServer 提供 webmail 服務。
hMailServer 並沒有提供 webmail,要自行架設,好處是我們可以自行選擇要整合哪套 webmail 系統,這邊選擇了 roundcube,它是一套使用 PHP 開發的 webmail 系統,搭配 MySQL 可以執行在 LAMP 環境上。
但此篇文章安裝的環境是 IIS + PHP + MySQL,因為我是將 hMailServer 安裝在 Windows Server,上面已經安裝了 IIS,這樣就不用再另外安裝 Apache,資料庫可以視情況換成其它,可以到 roundcube 官網看支援的資料庫系統。
環境準備
- IIS 7.5 或以上版本
- 一個用來執行 roundcube 的 IIS 站台,需要可以執行 PHP(參考 IIS 7.5 - 建立 PHP 執行環境)
- MySQL(參考 Windows 上安裝 MySQL)
檔案準備
roundcube (選擇 Complete package)
https://roundcube.net/download/
安裝
安裝及設定好環境準備中的項目。
載入 roundcube 需要的 PHP extensions,用文字編輯器編輯 PHP 安裝目錄下的 php.ini,載入下列 extensions:
(在 Dynamic Extensions 區段的 Windows Extensions 下方,以 extension=xxx.dll 的字串存在,取消註解即表示載入)
- php_fileinfo.dll
- php_intl.dll
- php_ldap.dll
- php_mbstring.dll
- php_exif.dll
- php_openssl.dll
- php_pdo_mysql.dll
在 MySQL 新增 roundcube 資料庫及使用者。
將下載的 roundcube 檔案解壓縮到 IIS 的 roundcube 站台根目錄,例如 C:\Websites\roundcube\httpdocs。
設定站台資料夾權限。
- 站台根目錄的上一層目錄(也就是C:\Websites\roundcube):
IUSR: 讀取和執行、列出資料夾內容、讀取
IIS AppPool\應用程式集區名稱: 讀取和執行、列出資料夾內容、讀取 - 站台根目錄\logs:
- 站台根目錄\temp:
IUSR: 繼承上一層目錄的權限,再加上修改權限
將權限套用到站台根目錄的上一層目錄是因為某些情況開啟時會出現下列錯誤訊息。
Warning: realpath(): open_basedir restriction in effect. File(C:\Websites\roundcube\httpdocs) is not within the allowed path(s):
設定 roundcube。
用瀏覽器開啟 http://roundcube-url/installer/ 開始安裝精靈。
Check environment
確認環境是否符合需求,如果有錯誤請修正,設定正確點選 [Next]。Create config
General configuration
- product_name: 服務名稱,也會當作網頁標題
Database setup
- db_dsnw: 資料庫連線資訊,填入前面所建立資料庫的位址、資料庫名稱、帳號、密碼
點選 [Create Config] 產生設定檔
點選 [Download] 下載設定檔,儲存到 站台根目錄\config,或是在該目錄底下新增一個檔名為 config.inc.php 的檔案,再複製文字方塊的內容貼上並存檔。
點選 [Countiun]
備註:這裡的設定往後還可以修改,所以先填寫必要的。
Test config
這個步驟在測試設定是否正確,針對錯誤的項目進行修正。Check DB config / DB Schema: 如果顯示 Database not initialized,點選 [Initialize database] 初始化資料庫。
Test filetype detection / Mimetype to file extension mapping: 如果顯示 NOT OK,暫時忽略錯誤,解決方法請查看設定篇。
Test SMTP config: 測試 SMTP 發信。
Test IMAP config: 測試 IMAP 登入。
安裝及測試完成後,將 站台根目錄\installer 資料夾刪除,確保沒有人可以執行安裝精靈。
用瀏覽器開啟 roundcube 站台,如果看到登入頁面表示安裝成功。
解決在 webmail 登入錯誤太多次被 hMailServer 封鎖的辦法
hMailServer 有 Auto-ban 的功能,這在 webmail 上會有一個問題,由於從 webmail 登入時都是來自同一個 IP(如果在同一台機器上會是 127.0.0.1),若嘗試錯誤達到 Auto-ban 的門檻會造成所有從 webmail 登入的用戶被封鎖。
解決方法就是在 hMailServer 的 Settings / Advanced / IP Ranges 增加一組 webmail 的 IP,並將 Priority 設為 25 以上(Auto-ban 的 priority 是 20)。
Reference
How to install Roundcube
https://github.com/roundcube/roundcubemail/wiki/Installation