什么是 twig ?
twig是 The Web Information Gateway 的缩写,是一套利用 PHP 开发而成的软件,它可以让你轻松地架设一个网络邮局 (WebMail)。
使用者只需透过浏览器,即可完成邮件的收发动作。除此之外,它还整合了新闻群组、通讯簿、行程安排、会议、书签......等功能,是一套多功能的 WebMail软件。
1、twig系统需求:
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
2、下载twig软件:
首先请先检查系统中是否已经安装了 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 软件数据库中找到。
3、twig安装步骤:
笔者假设你的 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 预设会有 主页 | 邮件 | 新闻| 通讯簿 | 行程 | 会议 | 工作 | 笔记 | 书签 | 模块 | 说明 | 注销 等选项,你可以一一加以点选使用。个人环境的设定可在"模块"选项中进行修改。
4、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 这个身份登入看看:
有没有发现在"选项"中已多了一个"系统管理"的项目,点选进去看看吧。在这里你可以针对组别或个人使用者修改相关的设定值,是不是很方便呢?
5、设定档介绍 你可以藉由编辑 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" 值改为自已图片的文件名。
怎么样?不错吧!
6、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" 就好了!
7、twig其它安全性的考虑
以下针对几种安全上的议题简单地作一个介绍。
1. 首先你必须确定你的设定档不会轻易地遭人存取。除了系统的权限之外,你最好在你的 config 目录底下加一个 .htaccess 。为了确保你的设定档是安全的,请试着利用浏览器取存你的 config.inc.php3 文件:
http:////config/config.inc.php3
2. 如果你的系统是安全的,你应该会在一个弹出的安全对话窗口后收到一个取存拒绝的讯息。如果没有,请参考网页服务器的文件来设定 .htaccess 文件。
3. 另一个安全上的顾虑是在 TWIG 与 mail/database 服务器之间的联机问题。一个安全的系统会将它们全部放在同一台服务器上,否则你的密码可能会经由网络上传递出去。此外,关于帐号/密码之间的传递,建议你使用 SSL 加密联机。
MySQL 在刚安装好时,数据库的使用者并没有设定密码,包括 root 也一样。所以如果希望你的系统能安全地运作,别忘了帮 root 设定一组密码。此外,本文中的范例使用 root 的身份联机是由于教学方便考量,建议在数据库联机部份,尽量使用一般使用者的身份来存取 MySQL。
到目前的设定应该都没问题了,现在就试着登入 twig,寄封信给你的好朋友吧!
新闻热点
疑难解答