歡迎您光臨本站 註冊首頁

利用twig架設WebMail系統

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  linuxcenter MichaelCheng

twig 是 The Web Information Gateway 的縮寫,是一套利用 PHP 開發而成的軟體,它可以讓你輕鬆地架設一個網路郵局 (WebMail)。使用者只需透過瀏覽器,即可完成郵件的收發動作。除此之外,它還整合了新聞群組、通訊簿、行程安排、會議、書籤......等功能,是一套多功能的 WebMail 軟體。


系統需求:
TWIG 需要以下的套件:

* 支持php的網頁伺服器( 建議使用 Apache )
* PHP 3.0.11 以上版本
此外若能配合下列套件,將能發揮 twig 更佳的特性:

* MySQL 或 pgsql
* LDAP 伺服器
* IMAP 伺服器
筆者建議以 Apache+PHP+MySQL+IMAP 的組合來架設,至於LDAP伺服器可依自行需要再加以搭配。
筆者所採用的套件如下:

* RedHat 7.2
* Apache 1.3.22
* PHP 4.0.6
* MySQL 3.23.41
* twig 2.7.5

下載軟體:

首先請先檢查系統中是否已經安裝了 Apache+PHP+MySQL+IMAP,你可以透過下列指令檢查是否已經安裝:

# rpm -qa | grep -i apache
# rpm -qa | grep -i php
# rpm -qa | grep -i mysql
# rpm -qa | grep -i imap

若發現有未安裝的套件,可利用你的Linux安裝光碟片來安裝。以 RedHat 7.2 為例,我們可以在光碟片的 RedHatRPMS 目錄中找到許多的 rpm 套件,並利用下列指令來安裝:

# rmp -ivh

或者你想升級至較新的版本,可至下列網址下載最新的版本:
* Apache:http://www.apache.org
* PHP:http://www.php.net
* MySQL:http://www.mysql.com
此外最重要的是要下載 twig,我們可以至 http://twig.screwdriver.net/download.php3 下載最新的 twig 2.7.5版。當然啦!以上所需的軟體都可在 LinuxCenter 軟體資料庫中找到。

安裝步驟:

筆者假設你的 Linux 系統中已經安裝了 Apache+PHP+MySQL+IMAP,而且 twig 也已經下載至你的家目錄中。現在就開始進行安裝的動作吧!

1. 將 twig 從家目錄複製到 /usr/local 

# cp $HOME/twig-2.7.5.tar.gz /usr/local

2.解壓縮檔 twig-2.7.5.tar.gz 

# cd /usr/local
# tar zxvf twig-2.7.5.tar.gz

3.執行 twig-install,將 twig 安裝至 /var/www/html/ 

# cd /usr/local/twig-2.7.5
# ./twig-install /var/www/html/twig

4. 建立資料庫

# mysqladmin -u root -p create twig
# cd /usr/local/twig-2.7.5/setup
# mysql -u root -p twig < twig.table.mysql

5. 修改參數設定 

# cd /var/www/html/twig/config
# vi config.inc.php3

$config["fromdomain"] = "你的網域名稱"; //修改為你這台 twig 主機的網域名稱
$config["language"] = "chinesebig5"; //將語系改成繁體中文
$config["imap_server"] = "YourImapServerDomain"; //指定你的IMAP伺服器位置,若是在同一台機器只要用"localhost"即可
$config["smtp_server"] = "YourSmtpServerDomain"; //指定你的SMTP伺服器位置,若是在同一台機器只要用"localhost"即可
$config["session_handler"] = "php4session"; //php 4以上系統可將 cookie 改為 session
$config["login_handler"] = "php4session"; //php 4以上系統可將 cookie 改為 session

# vi dbconfig.inc.php3

  $dbconfig["sqlusername"]="root"; //修改 mysql 的使用者帳號
  $dbconfig["sqlpassword"]="你的密碼"; //修改 mysql 的使用者密碼
  $dbconfig["defaultdb"]="twig"; //修改預設資料庫名稱
  $dbconfig["sqltype"]="mysql"; //修改使用資料庫
 


6. 修改 advanced.acl.population 以設定管理者帳號

# cd /usr/local/twig-2.7.5/setup
# vi advanced.acl.population

修改 INSERT INTO twig acl groups VALUES('456744','TWIGAdministrators','管理者帳號'); //將"管理者帳號"改成你的打算用來作管理的帳號
# mysql -u root -p twig < advanced.acl.population

 
7. 網頁測試 

使用瀏覽器輸入網址進行測試(如:http://your.domain.here/twig/test.php3)這裡是用來測試 IMAP 與 Database 的,共有三個部份,請一一加以測試是否為 work。

8.使用twig 

如果網頁測試的部份都沒問題了,請使用瀏覽器輸入網址(如:http://your.domain.here/twig/),就可以看到下面的畫面了。


9. 使用者登入

利用一組系統中已存在的帳號登入,你就可以看到下列的畫面。twig 預設會有 主頁 | 郵件 | 新聞 | 通訊簿 | 行程 | 會議 | 工作 | 筆記 | 書籤 | 模塊 | 說明 | 註銷 等選項,你可以一一加以點選使用。個人環境的設定可在"模塊"選項中進行修改。

 
管理者介面

我們已經在第六個步驟中設定了管理者的帳號了,接著我們還必須手動建立一個檔案才能使用管理者的介面。請在 features/admin 目錄中建立一個叫 users 的目錄,並在此目錄中建立一個名為 .admin 的檔案。例如 michael 是 twig 管理員的帳號,除了必須在第六步驟中將 advanced.acl.population 檔案中的管理員修改為 michael,還要在 features/admin/users 目錄下建立一個 michael.admin 的檔案。

# cd /var/www/html/twig/features/admin

# mkdir users

# cd users

# touch michael.admin

接下來讓我們用 michael 這個身份登入看看:



有沒有發現在"選項"中已多了一個"系統管理"的項目,點選進去看看吧。在這裡你可以針對組別或個人使用者修改相關的設定值,是不是很方便呢?

設定檔介紹

你可以藉由編輯 config 目錄下的設定文件來對 TWIG 作設定上的調整:

config.inc.php3 -
整體環境設定的設定檔

announcements.inc.php3 -
主頁中會顯示在"公布"欄位的檔案

dbconfig.inc.php3 -
資料庫的設定文件

images.inc.php3 -
使用圖片的清單

login.footer.inc.php3 -
登入畫面的檔尾設定檔

login.form.php3 -
登入畫面的主體設定檔

login.header.inc.php3 -
登入畫面的檔頭設定檔

mainmenu.inc.php3 -
顯示在主頁的清單項目

defaults.inc.php3 - 使用者及程序偏好設定的默認值檔案

header.inc.php3 -
每一頁的檔頭設定 (本檔案位於 features 目錄中)

footer.inc.php3 -
每一頁的檔尾設定 (本檔案位於 features 目錄中)

上述檔案我們已經看過 config.inc.php3 及 dbconfig.inc.php3 這兩個檔案了,若有其它的需要你也可以藉由修改檔案中的選項來改變設定值。接下來我們再來看看其它比較實用的例子。

比方說你想讓使用者登入后看到管理者所規定或宣布的一些事項,你可以編輯 announcements.inc.php3 這個檔案,讓使用者在主頁中的"公布"欄位中看到這些訊息。

如果你覺得登入畫面的英文訊息很礙眼,你也可以去修改 login.form.php3 這個檔案將登入畫面改成中文的畫面。

當然啦!如果你想將預設的 Logo 改成自已網站上的 Logo,你可以將自已作好的 Logo 圖片放置於 images 目錄底下,並將 images.inc.php3 檔案中的「 $img["logo"] = $config["imgdir"] . "twig.gif"; 」這個變數的 "twig.gif" 值改為自已圖片的文件名。

怎麼樣?不錯吧!

TWIG 的內部安全機制

TWIG 提供了兩個不同的安全機制:Basic 與 Advanced。這兩種機制在安全上有所不同,兩者只可擇其一,不能共存。你可以藉由修改 config.inc.php3 設定檔中的 $config["security"] 變數來改變它們。以下簡單介紹這兩種機制:

Basic
basic 機制與 TWIG 1 時的情況雷同,你可以利用 $disabled[] 來關閉一些使用者的特性項目。

Advanced
advanced 機制與 basic 截然不同,它可以使用 Access Control List (ACL) 來針對單一使用者或群組作設定特性的激活或關閉。此外,它還需要下列的設定:

* twig所連結的資料庫中必須要有 twig_acls 與 twig_acl_groups 兩個資料表
* 編輯 setup 目錄中的 advanced.acl.population 檔案,將 換成你真正的 twig 系統管理者
* 將以上的檔案加到你的資料庫中
在 setup 目錄中的 advanced.acl.population 檔案是用來設定 ACL 資料庫的,這項設定可以讓 TWIGAdministrators 群組擁有所有的許可權,而讓 Everyone 群組擁有預設的許可權,系統剛安裝好時所有的使用者都是屬於 Everyone 群組。當你設定好后,你可以試著用管理者的帳號登入,此時你會發現在主頁中多了一個系統管理的選項,你可以在此調整你的系統設定。不過要注意的是,advanced 機制除了 $disabled["global_autoaccounts"] 這個變數之外,並不支持任何的 $disabled[] 變數。

看昏頭了嗎?不用擔心!這些我們之前都已經設定好了。如果你想要使用 advanced 機制,只要將 config.inc.php3 設定檔中的 $config["security"] 變數設定為 "advanced" 就好了!

其它安全性的考量

以下針對幾種安全上的議題簡單地作一個介紹。

1. 首先你必須確定你的設定檔不會輕易地遭人存取。除了系統的許可權之外,你最好在你的 config 目錄底下加一個 .htaccess ?n。為了確保你的設定檔是安全的,請試著利用瀏覽器取存你的 config.inc.php3 檔案:
http:////config/config.inc.php3

2. 如果你的系統是安全的,你應該會在一個彈出的安全對話窗口后收到一個取存拒絕的訊息。如果沒有,請參考網頁伺服器的文件來設定 .htaccess 檔案。

3. 另一個安全上的顧慮是在 TWIG 與 mail/database 伺服器之間的聯機問題。一個安全的系統會將它們全部放在同一台伺服器上,否則你的密碼可能會經由網路上傳遞出去。此外,關於帳號/密碼之間的傳遞,建議你使用 SSL 加密聯機。

MySQL 在剛安裝好時,資料庫的使用者並沒有設定密碼,包括 root 也一樣。所以如果希望你的系統能安全地運作,別忘了幫 root 設定一組密碼。此外,本文中的範例使用 root 的身份聯機是由於教學方便考量,建議在資料庫聯機部份,盡量使用一般使用者的身份來存取 MySQL。

到目前的設定應該都沒問題了,現在就試著登入 twig,寄封信給你的好朋友吧!如果你覺得這篇文章能幫助你建構自已專屬的網路郵局,不妨也寄 e-mail 給我mailto:michaelc@shinewave.com.tw分享你的喜悅吧!


[火星人 ] 利用twig架設WebMail系統已經有646次圍觀

http://coctec.com/docs/linux/show-post-67866.html