标签:
courier-authlib dovecot postfix postdrop extmail mysql 系统版本6.7 软件版本 httpd-2.2.15-47.el6.centos postfix-3.1.0 extman-1.1 extmail-1.2 mysql 5.6.30 dovecot-2.0.9-19.el6_7.2.x86_64 yum -y remove boost-* yum -y remove mysql yum -y install wget gcc gcc-c++ ncurses-devel cmake make perl 可以有dns需要的可自行配置,需要的可以找我,还得写配置 新建mysql组以及用户 groupadd mysql useradd -M -s /sbin/nologin -r -g mysql mysql 好像得要有boost 源码编译mysql 14-61行 安装过的可直接忽略 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data -DSYSCONFDIR=/usr/local/mysql/ -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_BOOST=/files/boost -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all 安装完之后可能会报有四个选项错误,这是5.7的配置错误可以忽略 make && make install mv /etc/my.cnf{,.bak} cp support-files/my-default.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on mkdir -p /mysql/data chown -R mysql:mysql /mysql/data 5.6 scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/mysql/data -u mysql 5.7 /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data 问题 [root@localhost MySQL]# /etc/rc.d/init.d/mysql status MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED] 解决方 查看日志 cat /mysql/data/xiong.err 160513 00:19:41 mysqld_safe mysqld from pid file /mysql/data/xiong.pid ended chown -R mysql:mysql /usr/local/mysql/ touch /etc/profile.d/mysqld.sh echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile.d/mysqld.sh source /etc/profile.d/mysqld.sh 安装组工具包以及软件包 yum -y groupinstall "Development tools" "Desktop Platform Development" "Server Platform Development" yum -y install httpd perl-DBD-MySQL courier-authlib dovecot 首先一定要加入emos源否则authlib软件会安装失败 vim /etc/yum.repo.d/emos.repo [EMOS] name=EMOS baseurl=file:///mnt 此处Yum仓库按自己要想的来,都可以 enabled=1 gpgcheck=0 卸载postfix软件 yum -y remove postfix 删除系统用户postfix此步一定要操作否则extmail最后发送邮件会出现系统配置错误 groupdel postfix groupadd -g 2000 postfix useradd -g 2000 -u 2000 -s /sbin/nologin -M postfix groupadd -g 2001 postdrop userdel -r postdrop useradd -g 2001 -u 2001 -s /sbin/nologin -M postdrop 因为删除了系统用户需要将postfix原先自带文件增加权限,否则启动时会失败 chown postfix -R /var/lib/postfix/ chown postfix -R /var/spool/postfix/ 增加库文件否则make postfix 会失败 echo "/usr/local/mysql/lib" >> //etc/ld.so.conf.d/mysqld.conf 我的版本是postfix-3.1.0 ,系统版本64位的需要更改/usr/lib64,我的mysql是源码编的指定头文件跟库文件位置 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/lib64/sasl2 -lsasl2 -lssl -lcrypto‘ make -j 2 && make install 生成/etc/init.d/postfix脚本 下载位置 链接:http://pan.baidu.com/s/1hrSpPDM 密码:tieu chmod +x /etc/init.d/postfix chkconfig postfix --add chkconfig postfix on postconf "smtputf8_enable = no" 编辑authdaemonrc文件更改配置方式只为myql vim /etc/authlib/authdaemonrc Euthmodulelist="authuserdb authpam authpgsql authldap authmysql authcustom authpipe" authmodulelist="authmysql" Euthmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe" authmodulelistorig="authmysql" #daemons=5 daemons=10 进程为10 连接mysql配置文件,用户跟密码按自己指定的来我的是默认的extmail egrep -v "^#|^[[:space:]]|^$" /etc/authlib/authmysqlrc MYSQL_SERVER localhost MYSQL_USERNAME extmial MYSQL_PASSWORD extmail MYSQL_PORT 3306 端口号 MYSQL_OPT 0 MYSQL_DATABASE extmail MYSQL_USER_TABLE mailbox 文件目录 MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 2000 用户组ID号上头创建的用户 MYSQL_GID_FIELD 2000 MYSQL_LOGIN_FIELD username MYSQL_HOME_FIELD concat(‘var/mailbox/‘,homedir) 连接目录 MYSQL_NAME_FIELD name MYSQL_MAILDIR_FIELD concat(‘/var/mailbox/‘,maildir) MYSQL_SOCKET /usr/local/mysql/mysql.sock 此处一定要注意指定自己的mysql.sock文件 配置完成之后记得启动用服务并将authlib加入开机启动项 service courier-authlib restart chkconfig courier-authlib on 创建authlib指定的目录,上面指什么这里创建什么目录 mkdir -pv /var/mailbox chown -R postfix /var/mailbox/ 指定sasl2认证方式 vim /usr/lib64/sasl2/smtpd.conf pwcheck_method: authdaemond mech_list: PLAIN LOGIN authdaemond_path:/var/spool/authdaemon/socket 这里修改为:sasl所支持的认证方式 vim /etc/postfix/main.cf inet_interfaces = all 监听地址一定要改为all本地也行 ############################CYRUS-SASL############################ broken_sasl_auth_clients = yes smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_sasl_application_name = smtpd smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available! ########################Virtual Mailbox Settings######################## 这里是extmil配置 virtual_mailbox_base = /var/mailbox virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_alias_domains = virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_uid_maps = static:2000 virtual_gid_maps = static:2000 virtual_transport = virtual ##########################QUOTA Settings######################## 配额可取消 message_size_limit = 14336000 virtual_mailbox_limit = 20971520 这里很关键、一定要注意双引号以及自动创建模式,否则导入extmail.sql文件会出错 vim /usr/local/mysql/my.cnf sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES" sql-mode="NO_AUTO_CREATE_USER" [root@xiong docs]# service mysqld restart 改完一定要重启再导入extmail.sql 进入数据库中导入我的是5.6.30版本 source /tmp/extman-1.1/docs/extmail.sql; 创建用户并授权,mysql不熟这是百度的 GRANT ALL PRIVILEGES ON extmail.* TO extmail@localhost IDENTIFIED BY ‘extmail‘; GRANT ALL PRIVILEGES ON extmail.* TO extmail@127.0.0.1 IDENTIFIED BY ‘extmail‘; 将extman ,mysql_虚拟用户复制到postfix目录下、这文件都是main.cf定义的不要少复制、否则也会报错 [root@xiong docs]# cp /tmp/extman-1.1/docs/mysql_virtual_* /etc/postfix/ vim /etc/dovecot/conf.d/auth-sql.conf.ext 行前加入该行 mail_location = maildir:/var/mailbox/%d/%n/Maildir vim /etc/dovecot/dovecot-sql.conf.ext 该文件需跟auth-sql.conf中定义一致 driver = mysql host注意一定s改成mysql.sock指定的不要直接复制否则会有错误 connect = host=/usr/local/mysql/mysql.sock dbname=extmail user=extmail password=extmail default_pass_scheme = CRYPT password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = ‘%u‘ user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = ‘%u‘ 安装extmail tar zxvf extmail-1.2.tar.gz mkdir -pv /var/www/extsuite mv extmail-1.2 /var/www/extsuite/extmail cp /var/www/extsuite/extmail/webmail.cf.default /var/www/extsuite/extmail/webmail.cf vim /var/www/extsuite/extmail/webmail.cf SYS_USER_LANG = en_US 语言选项,可改作: SYS_USER_LANG = zh_CN SYS_MAILDIR_BASE = /home/domains 此处即为您在前文所设置的用户邮件的存放目录,可改作: SYS_MAILDIR_BASE = /var/mailbox SYS_MYSQL_USER = db_user SYS_MYSQL_PASS = db_pass 以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为: SYS_MYSQL_USER = extmail SYS_MYSQL_PASS = extmail vim /etc/httpd/conf/httpd.conf User postfix Group postfixpostfix-mysql-sasl-courier-httpd
标签:
原文地址:http://www.cnblogs.com/zhangchao512/p/5492693.html