全部博文(1144)
分类: LINUX
2007-01-06 15:51:58
安装Extmail for Qmail+Vpopmail+MySQL 发表时间:2006年5月16日 12时51分 | ||||
| ||||
大麻兄已经很久没有更新过igenus GPL版了,偶然发现个新秀Extmail,发现界面很清爽,试用一下噢``` 官方网站: 操作平台:Fedora Core 3 Qmail:netqmail-1.05 Vpopmail:vpopmail-5.4.12 Extmail:extmail-0.23-20060219 笔者服务器上安装了Qmail+vpopmail+iGenus+ClamAV等的邮件系统。 在此基础上安装Extmail webmail 系统。 ********************************************************************************* 引用 Installation Document - Extmail 安装文档 Pre-requisite* 由于**tmail是纯perl语言编写的,而且Maildir标准只在Unix类平台上实现,因此不能在Win32平台下安装。 要安装并使用Extmail至少要满足如下的系统条件: 操作系统(OS) 至少可以可靠工作的Unix类系统,如Linux, BSD, Solaris等。建议使用Linux或FreeBSD系统,在这些系统下,OpenSource/GNU软件运行配置成功的机会将大大提高。 Email软件 一个支持Maildir/Maildir++的email系统,如Qmail或Postfix,或者Courier MTA,建议使用Postfix MTA。对于其他MTA,本文档暂不涉及,原则上支持Maildir的都将被支持。 Web 服务器 一个工作正常,并至少支持CGI的web服务器,例如apache, lighttpd, thttpd等。强烈建议使用Apache,对于超大流量超大规模的ISP或特殊用户,可以考虑lighttpd+FCGI的方式,但需要对Extmail进行小量的改写以适应FCGI。 Perl解析器 毫无疑问,没有了perl,就不能运行Extmail。为了减少麻烦和问题,请尽量使用最新的Perl解析器,建议使用Perl 5.8.0或以上版本。 必备Perl模块 DB_File(可到CPAN下载 Fcntl DBI Benchmark 通过如下命令校验这些模块在系统里是否有安装: # perl -e 'use DBI' 如果DBI没有安装,则perl解析器将报错,可以到CPAN搜索下载。 如果不太熟悉命令行的,可以使用Extmail发行包里tools目录的pkg_stats.sh工具来检查模块的存在,检查结果将以彩色显示(但需要bash,如果在FreeBSD下,必须修改该脚本的第一行bash路径)。 首先进入发行包的根目录然后执行: . ./tools/pkg_stats.sh 注意: 两个“.”号之间有空格 如果模块都没有问题,程序将打印出每个模块的检查结果,如果有个别模块找不到,也将打印出出错信息并提供一个建议的下载URL,一个可能的结果如下: Benchmark found Carp found DB_File found DBI found Exporter found Fcntl found File::Spec found Net::LDAP not found! Try MIME::Base64 found MIME::QuotedPrint found POSIX found 可选Perl模块 Net::LDAP BerkeleyDB 其中Net::LDAP模块在使用ldap认证时是必须安装的,同样也可以在CPAN下载。 ***************************************************************************** 1. 下载最新Extmail最新安装包:extmail-0.23-20060219.tar.gz 解开源码包,并将解包后的extmail-0.23目录移动到安装的目录,例如/var/www/cgi-bin/下, tar xfz extmail-0.13.tar.gz mv extmail-0.13 /var/www/cgi-bin/extmail 2. Apache的配置 如果是新安装的Apache或Unix系统,则请增加一个虚拟主机配置,如果是在用系统,则请参考下面的虚拟主机配置进行更改。 确保没有其他NameVirtual指令在httpd.conf中激活后,在httpd.conf中增加如下的内容: NameVirtual *:80 ServerName mail.example.com DocumentRoot /var/www/cgi-bin/extmail/html/ ScriptAlia* /**tmail/cgi/ /var/www/cgi-bin/extmail/cgi/ Alia* /**tmail/ /var/www/cgi-bin/extmail/html/ Apache + User/Group变更安装模式 由于iGenus使用这种方式,所以笔者使用这种。 该方法的最大特点是需要改变当前Apache的运行用户,即User/Group,使之和邮件存储的uid/gid一致,这样webmail才能对邮件有完全的读写权限。假设邮件的存取uid/gid是mail/mail,那么Apache运行时就以mail:mail来运行了。通过ps aux|grep httpd命令可以证实这一情况。 # vi /etc/httpd/conf/httpd.conf 将User Group两条指令更改成当前邮件存储的uid/gid,例如: User vpopmail Group vpopmail 保存httpd.conf 这样做的主要优点是完全避免了setuid/gid的问题,但随之而来的是所有的web应用程序都将以mail/mail的uid/gid运行,包括创建的php的session文件等,某些特定软件将不能正常工作,而且也容易造成其他web程序的漏洞波及webmail甚至邮件数据本身! 还有 Apache + Suexec 模式 ,请参考Extmail官方安装文档 3. 配置Extmail [root@mail ~]# cd /var/www/cgi-bin/extmail [root@mail extmail]# [root@mail extmail]# cp webmail.cf.default webmail.cf [root@mail extmail]# vi webmail.cf SYS_CONFIG = /var/www/cgi-bin/extmail/ SYS_LANGDIR = /var/www/cgi-bin/extmail/lang SYS_TEMPLDIR = /var/www/cgi-bin/extmail/html SYS_SHOW_WARN = 0 SYS_PERMIT_NOQUOTA = 1 SYS_SESS_DIR = /tmp/ SYS_SESS_TIMEOUT = 21600 SYS_USER_PSIZE = 20 SYS_USER_LANG = zh_CN SYS_USER_TEMPLATE = standard SYS_USER_CHARSET = gb2312 SYS_USER_TIMEZONE = +0800 SYS_MIN_PASS_LEN = 2 SYS_MFILTER_ON = 0 SYS_NETDISK_ON = 1 SYS_AUTH_TYPE = mysql #SYS_MAILDIR_BASE = /home/vpopmail/domains/ (无法定义默认目录,请注释掉这一行) #这个不是webmail的问题,而是vpopmail就不支持这样子,vpopmail的数据表里已经定死了路径(是绝对路径),因此不能自己定义SYS_MAILDIR_BASE(必须注释掉),否则一定出错。 # sys_auth_schema, vpopmail1/vpopmail2/virtual # vpopmail1 => all user accounts in one table # vpopmail2 => accounts in per domain table SYS_AUTH_SCHEMA = vpopmail1 SYS_CRYPT_TYPE = crypt SYS_MYSQL_USER = vpopmail SYS_MYSQL_PASS = password SYS_MYSQL_DB = vpopmail SYS_MYSQL_HOST = localhost SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock SYS_MYSQL_TABLE = vpopmail SYS_MYSQL_ATTR_USERNAME = pw_name SYS_MYSQL_ATTR_DOMAIN = pw_domain SYS_MYSQL_ATTR_PASSWD = pw_passwd SYS_MYSQL_ATTR_QUOTA = pw_shell #SYS_MYSQL_ATTR_NDQUOTA = pw_shell (无法定义此表) SYS_MYSQL_ATTR_HOME = pw_dir #SYS_MYSQL_ATTR_MAILDIR = pw_dir (无法定义此表) SYS_G_ABOOK_TYPE = file SYS_G_ABOOK_FILE_PATH = /var/www/cgi-bin/extmail/globabook.cf SYS_G_ABOOK_FILE_LOCK = 1 SYS_G_ABOOK_FILE_CONVERT = 1 SYS_G_ABOOK_FILE_CHARSET = gb2312 具体意义请参考Extmail官方配置文档 |