一、先卸载原有的postfix:
[iyunv@fsy-Centos6 ~]# service postfix stop [iyunv@fsy-Centos6 ~]# chkconfig postfix off [iyunv@fsy-Centos6 ~]# rpm -e postfix --nodeps 二、为了基于Mysql实现虚拟用户认证,首先安装MySQL(我这里通过编译安装MySQL-5.6.33(通用二进制格式))
1.将下载好的压缩包解压至/usr/local,并进入此目录 [iyunv@fsy-Centos6 ~]# tar xf mysql-5.6.33-linux-glibc2.5-i686.tar.gz -C /usr/local/ [iyunv@fsy-Centos6 ~]# cd /usr/local/ 2.为解压后的目录创建一个链接,并进入此目录 [iyunv@fsy-Centos6 local]# ln -sv mysql-5.6.33-linux-glibc2.5-i686 mysql [iyunv@fsy-Centos6 local]# cd mysql 3.创建MySQL用户(使其成为系统用户)和MySQL组 [iyunv@fsy-Centos6 mysql]# groupadd -r -g 306 mysql [iyunv@fsy-Centos6 mysql]# useradd -g 306 -r -u 306 mysql 4.使mysql下的所有文件都属于mysql用户和mysql组 [iyunv@fsy-Centos6 mysql]# chown -R mysql.mysql /usr/local/mysql/* 5.提前准备一个分区用来创建逻辑卷(我这里用/dev/sda5),在此分区上创建逻辑卷并使其可以开机 自动挂载使用。 [iyunv@fsy-Centos6 mysql]# pvcreate /dev/sda5 [iyunv@fsy-Centos6 mysql]# vgcreate myvg /dev/sda5 [iyunv@fsy-Centos6 mysql]# lvcreate -n mydata -L 512M myvg [iyunv@fsy-Centos6 mysql]# mke2fs -j /dev/myvg/mydata #vim /etc/fstab,添加以下内容: /dev/myvg/mydata /mydata ext3 defaults 0 0 [iyunv@fsy-Centos6 mysql]# mkdir /mydata [iyunv@fsy-Centos6 mysql]# mount -a 6.创建数据目录,并使其属于mysql用户和mysql组,其他人无权限 [iyunv@fsy-Centos6 mysql]# mkdir /mydata/data [iyunv@fsy-Centos6 mysql]# chown -R mysql:mysql /mydata/data/ [iyunv@fsy-Centos6 mysql]# chmod o-rw /mydata/data/ 7.准备安装所需的开发环境 [iyunv@fsy-Centos6 mysql]# yum -y install gcc 8.准备就绪,开始安装 [iyunv@fsy-Centos6 mysql]#scripts/mysql_install_db--user=mysql --datadir=/mydata/data 9.安装完成后为了安全,更改/usr/local/mysql下所有文件的权限 [iyunv@fsy-Centos6 mysql]# chown -R root . 10.准备启动脚本,并使其开机自动启动 [iyunv@fsy-Centos6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [iyunv@fsy-Centos6 mysql]# chkconfig --add mysqld [iyunv@fsy-Centos6 mysql]# chkconfig --list mysqld 11.编辑数据库配置文件 [iyunv@fsy-Centos6 mysql]# cp support-files/my-default.cnf /etc/my.cnf #vim /etc/my.cnf,修改和添加以下内容: datadir = /mydata/data 12.提供执行相关命令所需的环境变量 [iyunv@fsy-Centos6 ~]# vim /etc/profile.d/mysql.sh 添加以下内容: export PATH=$PATH:/usr/local/mysql/bin 13.至此,MySQL服务配置完成,可以启动测试 [iyunv@fsy-Centos6 ~]# service mysqld start 三、编译安装postfix,(我这里用 postfix-2.10.10.tar.gz,相关软件包可以到postfix官网下载)
1.解压 [iyunv@fsy-Centos6 ~]# tar xf postfix-2.10.10.tar.gz [iyunv@fsy-Centos6 ~]# cd postfix-2.10.10 2.建立postfix和postdrop组和用户 [iyunv@fsy-Centos6 postfix-2.10.10]# groupadd -g 2525 postfix [iyunv@fsy-Centos6 postfix-2.10.10]# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix [iyunv@fsy-Centos6 postfix-2.10.10]# groupadd -g 2526 postdrop [iyunv@fsy-Centos6 postfix-2.10.10]# useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop 3.安装所需软件包 [iyunv@fsy-Centos6 postfix-2.10.10]# yum install cyrus-sasl-devel [iyunv@fsy-Centos6 postfix-2.10.10]# yum install db*-devel [iyunv@fsy-Centos6 postfix-2.10.10]# yum -y install openssl-devel 4.安装 [iyunv@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的库文件 [iyunv@fsy-Centos6 postfix-2.10.10]# make [iyunv@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.现在就可以启动服务了 [iyunv@fsy-Centos6 ~]# postfix start 完成!
|