接上期,通过前4期,我们已经部署完成了 DNS服务、MySQL服务、Apache服务 、PHP服务,环境方面,已经足以支撑我们部署接下来的 Postfix服务、Dovecot服务、Postfixadmin管理端,下面,我们就开始着手部署后面三个关键性服务,也是我们本专题的核心。
六、部署 Postfix 服务
1、安装postfix依赖包
[root@Mail ~]# yum -y install cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain
2、下载 postfix 安装包
[root@Mail ~]# wget -c ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/experimental/postfix-3.4-20181105.tar.gz
3、解压,并进入目录
[root@Mail ~]# tar -zxvf postfix-3.4-20181105.tar.gz
[root@Mail postfix-3.4-20181105]# cd postfix-3.4-20181105
4、创建postfix服务工作所需的用户及用户组
[root@Mail postfix-3.4-20181105]# groupadd -g 2000 postfix
[root@Mail postfix-3.4-20181105]# useradd -g postfix -u 2000 -M -s /sbin/nologin postfix
这里,我们将用户UID和用户组GID均指定为2000
5、开始编译
[root@Mail postfix-3.4-20181105]# make -f Makefile.init makefiles \
CCARGS="-DUSE_TLS -DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl" \
AUXLIBS_MYSQL="-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto"
[root@Mail postfix-3.4-20181105]# make
注意:在执行此步骤时,可能会如下出现2个报错
(1)、dict_mysql.c:171:19: 致命错误:mysql.h:没有那个文件或目录 :如下图
出现这个报错的原因为:我们在生成 Makefile 文件时,指定的MySQL头文件目录有误,可据自己MySQL的basedir来定义头文件目录。
(2)、/bin/ld: 找不到 -lmysqlclient :如下图
出现这个报错的原因为:我们在生成Makefile 文件时,指定的MySQL lib库文件目录错误,也可根据自己的MySQL basedir来定义头文件目录。
无报错后进行下一步:
[root@Mail postfix-3.4-20181105]# make install
此步骤会出现以下内容的交互式会话,提示我们输入部分目录,其中大部分保持默认就行。
install_root: [/]
tempdir: [/root/postfix-3.4-20181105]
config_directory: [/etc/postfix]
command_directory: [/usr/sbin]
daemon_directory: [/usr/libexec/postfix]
data_directory: [/var/lib/postfix]
html_directory: [no]
mail_owner: [postfix]
mailq_path: [/usr/bin/mailq]
manpages: [/usr/local/man]
newaliases_path: [/usr/bin/newaliases]
queue_directory: [/var/spool/postfix]
readme_directory: [no]
sendmail_path: [/usr/sbin/sendmail]
setgid_group: [postdrop]
shlib_directory: [no]
meta_directory: [/etc/postfix]
执行完成此步骤后,postfix服务安装完成。
6、配置postfix服务
[root@Mail postfix-3.4-20181105]# cd /etc/postfix/
配置文件都放在 /etc/postfix 目录中,如图
而我们要修改的配置文件其实就只有 main.cf 文件和 master.cf 文件
[root@Mail postfix]# vim main.cf
如图,main.cf 文件主要定义一些 postfix 服务常用的工作目录、网络接口、域名等,目录部分大部分不用修改,保持默认就行,但是自己又特殊需要的话,可修改为自定义目录。
不过,需要在该配置文件中加入下面三行,来定义虚拟邮件目录、UID号个GID号
virtual_mailbox_base = /wdata/vmail
virtual_uid_maps = static:2000
virtual_gid_maps = static:2000
此外,为了连接MySQL数据库,还需加入以下三行,此三行中的 mysql-virtual-*.cf 文件需要自行创建来定义 MySQL 数据库的连接信息,写法格式可参照 README_FILES/MYSQL_README 文件、proto/MYSQL_README.html 文件和 proto/mysql_table 文件
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual-alias-maps.cf
如图,为mysql-virtual-*.cf文件
[root@Mail postfix]# vim master.cf
如图,master.cf 文件主要定义了一些常用的协议,这个一般不用修改,保持默认,在这里,我们取消 submission 和 smtps 前面的注释。
7、启动 postfix 服务
[root@Mail postfix]# /usr/sbin/postfix start
如图,表示启动成功
到此为止,postfix 服务部署完成,下期我们开始部署 Dovecot 服务。
未完待续。。。。。。