zimbra 是重量级的开源企业邮件解决方案,原是商业软件,被vmware 收购后开源,跟很多软件一样,分为社区版和专业版,专业版有一些增值服务和功能加强,需要付费购买。这里讲的是社区版。
之前写了一篇博客,讲述的是zimbra在ubuntu 上的安装,后来帮朋友在centos上安装时出现了问题,于是自己在虚拟机里重新搭建一遍,算是做个笔记。
下载地址 http://www.zimbra.com/downloads/os-downloads.html
前提
1、下载软件
2、最小化安装centos 6 x64 (zimbra 现在不支持i686)
3、/opt至少4G磁盘容量,物理内存推荐大于等于 4G
4、解决dns 的MX 解析问题
这个需要特别讲一下。dns有一个MX记录,我们通常将域名example.com的邮件解析指向mail.example.com。搭建zimbra时,安装程序会检验你的MX记录,如果不匹配则安装失败。
问题是,如果你只是测试安装,或者安装一个内部邮件服务器,那么就无法(正确的)获得外部DNS的MX解析。通常而言,我们需要在本地劫持一个域名,只需要编辑/etc/hosts 即可,但是劫持MX记录会复杂一点。这里使用dnsmasq 。
a、配置主机名和解析
a1、编辑/etc/sysconfig/network,修改
1
|
hostname=mail.example.com |
a2、编辑/etc/hosts,添加记录
1
|
192.168 . 1.7 mail.example.com mail
|
b、禁用selinux,编辑/etc/sysconfig/selinux,修改
1
|
SELINUX=disabled |
c、关闭sendmail或者postfix,防止25号端口冲突
1
2
3
4
5
|
chkconfig sendmail off service sendmail stop 或者 chkconfig postfix off service postfix stop |
重启机器生效,命令: reboot
d、安装配置dnsmasq
d1、安装dnsmasq
1
|
yum install dnsmasq bind-utils
|
d2、配置dnsmasq
1
2
3
4
5
6
7
8
|
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak echo "no-resolv" >/etc/dnsmasq.conf
echo "server=8.8.8.8" >>/etc/dnsmasq.conf
echo "domain=example.com" >>/etc/dnsmasq.conf
echo "mx-host=example.com,mail.example.com,5" >>/etc/dnsmasq.conf
echo nameserver 127.0 . 0.1 >/etc/resolv.conf
chkconfig dnsmasq on service dnsmasq start |
d3、检查dns解析
1
|
dig example.com MX
|
安装zimbra
1、安装需要的软件包
2、解压zimbra
1
2
|
tar zxvf zcs- 8.0 .3_GA_5664.RHEL6_64. 20130305090204 .tgz
cd zcs- 8.0 .3_GA_5664.RHEL6_64. 20130305090204
|
3、运行安装脚本
1
|
. /install
|
zimbra是给redhat打包的,这里由于是centos,需要加一个参数
1
|
. /install .sh --platform-override
|
过程中如果提示有缺失的依赖包,直接yum安装即可,比如
1
|
yum install sysstat libidn libstdc++ sqlite nc sudo
|
如果顺利,一路回车或者回答yes/no即可,只需要注意几个地方
1
2
3
|
DNS ERROR resolving MX for mail.example.com It is suggested that the domain name have an MX record configured in DNS Change domain name? [Yes] |
这是因为我们给域名example.com 建邮箱,而不是mail.example.com
因此,选择yes,输入example.com
1
2
3
4
5
6
7
8
9
|
Main menu 1 ) Common Configuration:
2 ) zimbra-ldap: Enabled
3 ) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@example.com
******* +Admin Password UNSET 。。。。。 Address unconfigured (**) items (? - help )
|
这里因为没有设置管理员密码,我们输入3
1
2
3
4
5
6
7
|
Store configuration 1 ) Status: Enabled
2 ) Create Admin User: yes
3 ) Admin user to create: admin@example.com
** 4 ) Admin Password UNSET
。。。。。。 Select, or 'r' for previous menu [r]
|
我们输入4,然后设置一个自己的密码。
接下来,输入r,返回主菜单,
然后输入a,保存并应用配置。(这个过程很久)
启动zimbra
1
2
|
chkconfig zimbra on /etc/init.d/zimbra start |
webmail在服务器的443端口,管理后台在7071端口,可以通过浏览器访问。
ps:社区版的zimbra 缺少一个备份功能,可以通过一个叫zmbkpose的程序实现。不详述。
update-20151210
如果你使用rsync备份zimbra,会发现文件/opt/zimbra/data/ldap/mdb/db/data.mdb异常之大,使用ls查看会有85899345920,(80G),但du -m 仅仅几兆,rsync备份却会传输80G,这是一个典型的占坑行为,主要是防止ldap无法写入而提前分配空间,解决办法:
这里改为8G
1
2
3
4
|
su - zimbra
zmlocalconfig -e ldap_db_maxsize=8589934592 zmlocalconfig -e ldap_accesslog_maxsize=8589934592 zmcontrol restart |