免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4378 | 回复: 11

mysql修改端口后与 postfix courier-authlib套接问题 [复制链接]

论坛徽章:
0
发表于 2010-04-14 15:28 |显示全部楼层
# tar jxvf courier-authlib-0.59.3.tar.bz2
# cd courier-authlib-0.59.3
#./configure \
--prefix=/usr/local/courier-authlib \
--sysconfdir=/etc \
--without-authpam \
--without-authldap \
--without-authpwd \
--without-authshadow \
--without-authvchkpw \
--without-authpgsql \
--with-authmysql \
--with-mysql-libs=/usr/lib/mysql \
--with-mysql-includes=/usr/include/mysql \
--with-redhat \
--with-authmysqlrc=/etc/authmysqlrc \
--with-authdaemonrc=/etc/authdaemonrc \
CFLAGS="-march=i686 -O2 -fexpensive-optimizations" \
CXXFLAGS="-march=i686 -O2 -fexpensive-optimizations"
# make
# make install

# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon
# cp /etc/authdaemonrc.dist  /etc/authdaemonrc
# cp /etc/authmysqlrc.dist  /etc/authmysqlrc

修改/etc/authdaemonrc 文件
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10

编辑/etc/authmysqlrc 为以下内容,其中2525,2525 为postfix 用户的UID和GID。
MYSQL_SERVER localhost
MYSQL_PORT 3307                  
MYSQL_USERNAME  extmail     
MYSQL_PASSWORD extmail      
MYSQL_SOCKET  /var/lib/mysql1/mysql.sock
MYSQL_DATABASE  extmail
MYSQL_USER_TABLE  mailbox
MYSQL_CRYPT_PWFIELD  password
MYSQL_UID_FIELD  '2525'
MYSQL_GID_FIELD  '2525'
MYSQL_LOGIN_FIELD  username
MYSQL_HOME_FIELD  concat('/var/spool/mail/',homedir)
MYSQL_NAME_FIELD  name
MYSQL_MAILDIR_FIELD  concat('/var/spool/mail/',maildir)

# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
# chmod 755 /etc/init.d/courier-authlib
# chkconfig --add courier-authlib
# chkconfig --level 2345 courier-authlib on

#echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf
# ldconfig -v
# service courier-authlib start   (启动服务)

5.        POP3 服务器 courier-IMAP:ExtMail目前还没有正式支持IMAP目录,因此需要屏蔽IMAP,只提供pop3服务,郁闷
# tar jxvf courier-imap-4.1.3.tar.bz2
# cd courier-imap-4.1.3
./configure \
--prefix=/usr/local/courier-imap \
--with-redhat \
--enable-unicode \
--disable-root-check \
--with-trashquota \
--without-ipv6 \
CPPFLAGS='-I/usr/include/openssl  -I/usr/local/courier-authlib/include' \
LDFLAGS='-L/usr/local/courier-authlib/lib/courier-authlib' \
COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
# make
# make install

# cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd
# cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl
# cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d
# cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl

配置Courier-IMAP,为用户提供pop3服务:
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=YES

注:如果你想为用户提供IMAP服务,则需在"/usr/local/courier-imap/etc/imapd"文件中设置"IMAPDSTART=yes";其它类同;

新建虚拟用户邮箱所在的目录,并将其权限赋予postfix用户:
#mkdir -pv /var/spool/mail
#chown -R postfix /var/spool/mail

#cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd
#chmod 755 /etc/rc.d/init.d/courier-imapd
#chkconfig --add courier-imapd
#chkconfig --level 2345 courier-imapd on
#service courier-imapd start

接下来重新配置SMTP 认证,编辑 /usr/local/lib/sasl2/smtpd.conf ,确保其为以下内容:
pwcheck_method: authdaemond
log_level: 3
mech_listLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

6.        邮件投递代理(MDA)maildrop:支持过滤和强大功能
maildrop 是一个使用C++编写的用来代替本地MDA的带有过滤功能邮件投递代理,是courier邮件系统组件之一。它从标准输入接受信息并投递到用户邮箱; maildrop既可以将邮件投递到mailboxes格式邮箱,亦可以将其投递到maildirs格式邮箱。同时,maildrop可以从文件中读取入站邮件过滤指示,并由此决定是将邮件送入用户邮箱或者转发到其它地址等。和procmail不同的是,maildrop使用结构化的过滤语言,因此,邮件系统管理员可以开发自己的过滤规则并应用其中。

我们在此将使用maildrop来代替postfix自带的MDA,并以此为基础扩展后文的邮件杀毒和反垃圾邮件功能的调用;在此可能会修改前文中的许多设置,请确保您的设置也做了相应的修改。

6.1 安装

将courier-authlib的头文件及库文件链接至/usr目录(编译maildrop时会到此目录下找此些相关的文件):
# ln -sv /usr/local/courier-authlib/bin/courierauthconfig   /usr/bin
# ln -sv /usr/local/courier-authlib/include/*   /usr/include
# groupadd -g 1001 vmail
# useradd -g vmail -u 1001 -M -s /sbin/nologin vmail
# tar jxvf maildrop-2.0.4.20080726.tar.bz2
# cd maildrop-2.0.4.20080726
# ./configure \
--enable-sendmail=/usr/sbin/sendmail \
--enable-trusted-users='root vmail' \
--enable-syslog=1 --enable-maildirquota \
--enable-maildrop-uid=1001 \
--enable-maildrop-gid=1001 \
--with-trashquota --with-dirsync
# make
# make install

检查安装结果,请确保有"Courier Authentication Library extension enabled."一句出现:
# maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.


6.2 新建其配置文件/etc/maildroprc文件,首先指定maildrop的日志记录位置:
# vi /etc/maildroprc
添加:
logfile "/var/log/maildrop.log"

# touch /var/log/maildrop.log
# chown vmail.vmail /var/log/maildrop.log

6.3 配置Postfix

编辑master.cf
# vi /etc/postfix/master.cf
启用如下两行
maildrop  unix  -       n       n       -       -       pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

注意:定义transport的时候,即如上两行中的第二行,其参数行必须以空格开头,否则会出错。

编辑main.cf
# vi /etc/postfix/main.cf
virtual_transport = virtual
修改为:
virtual_transport = maildrop

将下面两项指定的UID和GID作相应的修改:
virtual_uid_maps = static:2525
virtual_gid_maps = static:2525
修改为:
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001

6.4 编辑/etc/authmysqlrc

# vi /etc/authmysqrc
MYSQL_UID_FIELD  '2525'
MYSQL_GID_FIELD  '2525'
更改为:
MYSQL_UID_FIELD  '1001'
MYSQL_GID_FIELD  '1001'

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 Welcome to our asia-manufacturer.com ESMTP,Warning:Version not Available!
ehlo youlike.com
250-asia-manufacturer.com
250-PIPELINING
250-SIZE 20971520
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:root@youlike.com
到这里就不动了
这是我的日志
/var/log/maillog
Apr 14 14:15:52 asia-manufacturer postfix/master[3083]: reload configuration /etc/postfix
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6235]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6235]: fatal: mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf(0,lock|fold_fix): table lookup problem
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6236]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6236]: fatal: mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf(0,lock|fold_fix): table lookup problem
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6237]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Apr 14 14:16:09 asia-manufacturer postfix/trivial-rewrite[6237]: fatal: mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf(0,lock|fold_fix): table lookup problem
我明明已经在/etc/authmysqlrc修改socket 各端口为什么还是连/var/lib/mysql/mysql.sock晕死求高手帮忙!

论坛徽章:
0
发表于 2010-04-14 15:36 |显示全部楼层
之后我改了 authmysqlrc 权限为644还是不行 到底怎么回事好像这个文件跟本没起作用,但在/usr/local/courier-authlib/下又没有etc文件如我看我的安装这程这应该是正确的--sysconfdir=/etc \但不知道他读了那个配置 文件,authdaemonrc是读了我一更名,service courier-authlib start 就无法启动,但我改authmysqlrc 怎么改都没反应............再次请求高手。

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
发表于 2010-04-14 16:13 |显示全部楼层
'/var/lib/mysql/mysql.sock' 位置不对?

论坛徽章:
0
发表于 2010-04-14 16:23 |显示全部楼层
本帖最后由 freesoftsomuch 于 2010-04-14 16:37 编辑

你看一下我的配置文件/etc/authmysqlrc  MYSQL_SOCKET改成了/var/lib/mysql1/mysql.sock了,但为什么他老是去连/var/lib/mysql/mysql.sock呢???是不是还有其他配置文件可以设置啊!真是郁闷

论坛徽章:
0
发表于 2010-04-14 16:30 |显示全部楼层
我现在就是必需要改变套接的的位置 ,这个位置/var/lib/mysql/mysql.sock 有一个实本在运行我是用mysqld_mulit在同一台机上启用了两个实体。

论坛徽章:
0
发表于 2010-04-14 16:54 |显示全部楼层
求高手回答,请在回答之前勿必看一下我的authmysqlrc  我如果改成/var/lib/mysql/myaql.sock一定行但是环境必要做修改,但我设置 /etc/authmysqlrc MYSQL_SOCKET 没有作用我想知道是什么原因

论坛徽章:
0
发表于 2010-04-16 19:04 |显示全部楼层
顶一下还没解决改了还不行

论坛徽章:
0
发表于 2010-04-17 09:24 |显示全部楼层
各位老大看一下啊!!!!再顶一下

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2010-04-17 09:57 |显示全部楼层
不明白楼主为什么起两个mysql服务,一个服务不能实现?

论坛徽章:
0
发表于 2010-04-17 11:35 |显示全部楼层
因为这台服务器要做多主一备,这是备分机来的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP