一、先卸载原有的postfix:
[root@fsy-Centos6 ~]# service postfix stop
[root@fsy-Centos6 ~]# chkconfig postfix off
[root@fsy-Centos6 ~]# rpm -e postfix --nodeps
二、为了基于Mysql实现虚拟用户认证,首先安装MySQL(我这里通过编译安装MySQL-5.6.33(通用二进制格式))
1.将下载好的压缩包解压至/usr/local,并进入此目录
[root@fsy-Centos6 ~]# tar xf mysql-5.6.33-linux-glibc2.5-i686.tar.gz -C /usr/local/
[root@fsy-Centos6 ~]# cd /usr/local/
2.为解压后的目录创建一个链接,并进入此目录
[root@fsy-Centos6 local]# ln -sv mysql-5.6.33-linux-glibc2.5-i686 mysql
[root@fsy-Centos6 local]# cd mysql
3.创建MySQL用户(使其成为系统用户)和MySQL组
[root@fsy-Centos6 mysql]# groupadd -r -g 306 mysql
[root@fsy-Centos6 mysql]# useradd -g 306 -r -u 306 mysql
4.使mysql下的所有文件都属于mysql用户和mysql组
[root@fsy-Centos6 mysql]# chown -R mysql.mysql /usr/local/mysql/*
5.提前准备一个分区用来创建逻辑卷(我这里用/dev/sda5),在此分区上创建逻辑卷并使其可以开机 自动挂载使用。
[root@fsy-Centos6 mysql]# pvcreate /dev/sda5
[root@fsy-Centos6 mysql]# vgcreate myvg /dev/sda5
[root@fsy-Centos6 mysql]# lvcreate -n mydata -L 512M myvg
[root@fsy-Centos6 mysql]# mke2fs -j /dev/myvg/mydata
#vim /etc/fstab,添加以下内容:
/dev/myvg/mydata /mydata ext3 defaults 0 0
[root@fsy-Centos6 mysql]# mkdir /mydata
[root@fsy-Centos6 mysql]# mount -a
6.创建数据目录,并使其属于mysql用户和mysql组,其他人无权限
[root@fsy-Centos6 mysql]# mkdir /mydata/data
[root@fsy-Centos6 mysql]# chown -R mysql:mysql /mydata/data/
[root@fsy-Centos6 mysql]# chmod o-rw /mydata/data/
7.准备安装所需的开发环境
[root@fsy-Centos6 mysql]# yum -y install gcc
8.准备就绪,开始安装
[root@fsy-Centos6 mysql]#scripts/mysql_install_db--user=mysql --datadir=/mydata/data
9.安装完成后为了安全,更改/usr/local/mysql下所有文件的权限
[root@fsy-Centos6 mysql]# chown -R root .
10.准备启动脚本,并使其开机自动启动
[root@fsy-Centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@fsy-Centos6 mysql]# chkconfig --add mysqld
[root@fsy-Centos6 mysql]# chkconfig --list mysqld
11.编辑数据库配置文件
[root@fsy-Centos6 mysql]# cp support-files/my-default.cnf /etc/my.cnf
#vim /etc/my.cnf,修改和添加以下内容:
datadir = /mydata/data
12.提供执行相关命令所需的环境变量
[root@fsy-Centos6 ~]# vim /etc/profile.d/mysql.sh
添加以下内容:
export PATH=$PATH:/usr/local/mysql/bin
13.至此,MySQL服务配置完成,可以启动测试
[root@fsy-Centos6 ~]# service mysqld start
三、编译安装postfix,(我这里用 postfix-2.10.10.tar.gz,相关软件包可以到postfix官网下载)
1.解压
[root@fsy-Centos6 ~]# tar xf postfix-2.10.10.tar.gz
[root@fsy-Centos6 ~]# cd postfix-2.10.10
2.建立postfix和postdrop组和用户
[root@fsy-Centos6 postfix-2.10.10]# groupadd -g 2525 postfix
[root@fsy-Centos6 postfix-2.10.10]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
[root@fsy-Centos6 postfix-2.10.10]# groupadd -g 2526 postdrop
[root@fsy-Centos6 postfix-2.10.10]# useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop
3.安装所需软件包
[root@fsy-Centos6 postfix-2.10.10]# yum install cyrus-sasl-devel
[root@fsy-Centos6 postfix-2.10.10]# yum install db*-devel
[root@fsy-Centos6 postfix-2.10.10]# yum -y install openssl-devel
4.安装
[root@fsy-Centos6 postfix-2.10.10]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'
释义:
CCARGS:指明头文件位置,CCARGS=-DHAS_MYSQL 指明启用mysql的连接能
-I/usr/include/mysql 指明mysql的头文件位置
-DUSE_SASL_AUTH启用SASL认证
-I/usr/include/sasl指明SASL头文件位置
-DUSE_TLS使SMTP支持smtps协议
AUXLIBS:指明库文件位置,-L/usr/lib/mysql 指明MySQL库文件位置
-lmysqlclient指明MySQL客户端库文件
-lz压缩库文件
-lm模块库文件
-lsslssl的库文件
[root@fsy-Centos6 postfix-2.10.10]# make
[root@fsy-Centos6 postfix-2.10.10]# make install
按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值,省略的表示采用默认值)
install_root: [/] /
tempdir: [/root/postfix-2.10.10] /tmp/postfix
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
manpage_directory: [] /usr/local/man
newaliases_path: [] /usr/bin/newaliases
queue_directory: [] /var/spool/postfix
readme_directory: [] no
sendmail_path: [] /usr/sbin/sendmail
setgid_group: [] postdrop
在此过程中可能会遇到如下问题:
libmysqlclient.so.18: cannot open shared object file: No such file or directory
1).先确认/usr/local/mysql/lib/下是否有libmysqlclient.so.18这个文件.
ll /usr/local/mysql/lib/|grep libmysqlclient.so.18
2).修改ld.so.conf文件
echo "/usr/local/mysql/lib" >>/etc/ld.so.conf
然后执行ldconfig使其生效
5.现在就可以启动服务了
[root@fsy-Centos6 ~]# postfix start
完成!