Hi all:
沉寂了数月后,Extmail 团队今天发布1.0.3的webmail以及0.2.3的后台(ExtMan),主要在核心代码方面做了变动和改进,模板及功能方面没有变化。以下是主要的变动内容。
修正了网络磁盘的一个安全漏洞(感谢云中帆)
重新设计了配置文件解析机制,取消了原来代码中use Ext::Config的方式
增加Ext.pm 这个基础模块,统一由该模块操作配置文件
改进的持续化perl环境,对FCGI支持更好
消除了Ext:
ogger模块在FCGI下偶然异常的bug
更新了大部分调用Ext::Config的模块
更新cgi/*.cgi文件
更新了README.fcgi
修正了dispatch.fcgi在lighttpd下无法获得extman url的bug,感谢leo zhang
dispatch.fcgi全面支持extman 及extmai
Extman全面支持FCGI
后台登陆时,密码取消了大小写的限制,cookie时间也放宽至3小时
重要变更说明
自1.0.3版本开始,将全面使用新的配置文件解析机制,通过Ext.pm 这个基础类在整个cgi 程序载入时进行全局的初始化,这个初始化主要包括了配置文件的解析和缓存,并初始化FCGI/其他持续化环境(未来可能考虑mod_perl或speedy)及销毁函数等。其他应用模块通过继承Ext.pm的方法来间接使用配置文件,这样解决了过去老模式下,无法在同一个dispatch.fcgi进程里,解析extmail和extman的配置文件。老的模式会一直缓存在内存里,每次请求后不能自动消除,这也是结构的限制,经过这次改进,已经基本没有这种问题了。
用户需要注意的有2点:
1)webmail.cf及webman.cf 里,多了SYS_APP_TYPE 参数,webmail部分是WebMail,而后台则是ExtMan,这个参数不能改,也不能少。
2)lang目录里的语言包的内部名称变动了。因此注意更新。
FCGI配置
使用上和1.0.2及以前版本没有区别。
激活ExtMan的FCGI模式
具体参考extman里的README.fcgi,这里推荐使用remote的模式,给一个Apache + dispatch.fcgi来支持 webmail及extman的简单配置方法:
httpd.conf里增加:
引用:
LoadModule fastcgi_module modules/mod_fastcgi.so
<Ifmodule mod_fastcgi.c>
FastCgiExternalServer /usr/bin/dispatch.fcgi -host 127.0.0.1:8888 -idle-timeout 240
</Ifmodule>
Alias /extmail/cgi/ /usr/bin/dispatch.fcgi/
Alias /extmail /var/www/extsuite/extmail/html
Alias /extman/cgi/ /usr/bin/dispatch.fcgi/
Alias /extman /var/www/extsuite/extman/html
<Location "/extmail/cgi">
SetHandler fastcgi-script
</Location>
<Location "/extman/cgi">
SetHandler fastcgi-script
</Location>
要注意,上面的/usr/bin/dispatch.fcgi并不存在,但是必须按上面的写。有些用户自作聪明指向真实的dispatch.fcgi程序,反而用不了,这里大家一定要注意,按上面的配置写好。
另外,extmail和extman最好在同一个目录下,可以最少避免问题。
然后启动dispatch.fcgi:
/var/www/extsuite/extmail/dispatch-init start
并重新启动apache,看看效果如何吧:)
升级方法
Extman部分,将老的extman 程序改名或删除,然后按上一版本设置即可。由于配置上仅仅是多了一个SYS_APP_TYPE参数,其他参数没任何变化,因此这里不做介绍。
ExtMail部分,和ExtMan的建议类似。
如果要增加FCGI的支持,请参考上面的配置介绍,该配置适合将Extmail和Extman都增加FCGI支持
下载地址
http://www.extmail.org/download