本文转载自sinykk博客http://sinykk.iteye.com/blog/1030270
本次装的extmail参考官方教程,但有些地方进行了修改
http://wiki.extmail.org/extmail_solution_for_linux_centos-5【在配置时第十一步时不要关掉IMAP服务,因为现在很多人还是喜欢用IMAP】
服务器上邮nginx apache两种服务器组成。apache只为邮件服务器,地址为ai9475.com:9000/
域名配置
----------------------------------------------------------------------------------
主机名 (A)(最多允许20条) IP 地址 TTL 操作 帮助
pop3.ai9475.com 122.225.96.117 3600 修改 - 删除
smtp.ai9475.com 122.225.96.117 3600 修改 - 删除
imap.ai9475.com 122.225.96.117 3600 修改 - 删除
别名 (CNAME)(最多允许20条) 别名主机 TTL 操作 帮助
mail.ai9475.com ai9475.com 3600 修改 - 删除
添加新的别名 注:只提交新加纪录
邮件交换记录 (MX)(最多允许20条) 目标主机 优先级 TTL 操作 帮助
ai9475.com ai9475.com 10 3600 修改 - 删除
如果不配置smpt,pop3,在smpt,pop3中填IP也可以访问
----------------------------------------------------------------------------------
extmail 本身已支持imap服务
----------------------------------------------------------------------------------
叁、制作_yum_仓库
# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm 在这步时。因为文件不存在了,所以通过WGET下载一个放在本地上运行
加载EMOS-1.5的光盘,请把emos的光盘放到光驱中
在这一步时,我不在服务器边只能
#mount -o loop -t iso9660 /root/rpm/EMOS_1.5_x86_64.iso /mnt/EMOS
# createrepo . 在这步会出现 -bash: createrepo:,是因为未安装createrepo yum install createrepo即可
===============================================
玖、配置管理后台-extman
导入初始数据后,需要将数据库中的域名改成你自己的
重启postfix 时关闭出错,但重启成功,没事,多restart一下就看到两个OK了
# service postfix restart
===============================================
[root@localhost docs]# /usr/sbin/authtest -s login [email protected] extmail
Authentication FAILED: Operation not permitted
通过 /var/log/maillog可以看到
May 5 11:24:01 localhost authdaemond: Installing libauthmysql
May 5 11:24:01 localhost authdaemond: file not found
May 5 13:33:27 localhost postfix/postfix-script[4308]: fatal: the Postfix mail system is not running
重启了courier-authlib
[root@localhost extmail]# /usr/sbin/authtest -s login [email protected] extmail
Authentication FAILED: Input/output error
这个错误是在第伍、配置courier-authlib 修改 vi /etc/authlib/authmysqlrc 时出错,我把后面的/给删除了,注意里面mysql.sock的位置
===============================================
问题
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /var/www/extsuite/extman/libs /usr/lib/perl5/site_perl/5.8.8/i
解决:
只需要安装perl-DBD-MySQL即可解决此问题。
yum install perl-DBD-MySQL
===============================================
http://122.225.96.117:9000/extmail/cgi/index.cgi
登陆管理员后不能看到所有用户:
我进入extman后只有如下菜单
索引 | 域列表 | 添加用户 | 添加别名 | 添加域 | 添加管理员 | 群发邮件 | 图形日志
域列表 => 对应域名 注意看有一支笔,点那个绿色的笔即可。
===============================================
extmail登录提示不正确的用户名或密码
安装mail服务器,参考extmail论坛资料安装后,extman可以登陆,而extmail登录提示不正确的用户名或密码。前段时间,一直没有找到此问题的解决办法。昨天终于发现了问题所在,先打开mysql的debug。在/etc/my.cnf里的[mysqld]下加上log=/var/lib/mysql /sql.log。然后tail -f /var/lib/mysql/sql.log。再在web界面登录,这日记就会纪录相关信息。我发现了我的问题所在了。我在登录界面里域名框里用的是 ip地址。换成域名,问题解决。
===============================================
拾、配置cyrus-sasl
smtp认证测试失败
535 5.7.8 Error: authentication failed: authentication failure
用户名写错了,我用了例子中的用户名,其实应该用我自己在后台添加的用户
其日志: SASL LOGIN authentication failed: authentication failure
最后找到问题。是自己用户名和密码使用错误(大汗)
======================================================
没有产生maillog或者maillog不更新
到你的/etc/syslog.conf文件看一下,看是不是“-/var/log/maillog”将前面的“-”去掉,重启syslog服务。
===============================================
在测试IMAP服务时FOXMAIL里用户名要填 [email protected] 是一个完整的
在IPAD,IPHONE里设置SMTP时要填写用户名和密码,并且填完整后要先选择SSL,这样才能找到IMAP.AI9475.COM主机
=====================================
绑定多域名下配置FOXMAI方式
如登陆服务器为 mail.ai9475.com
用户名为 [email protected]
那么在FOXMAIL。中用户名地方都用[email protected]
而在POP3,IMAP,SMTP中设置为 pop3.ai9475.com即可
=========================================
系统信息 Connection refused
因为保存在/etc/rc.local 时出现了乱码,导致服务器启动时没有启动相关数据
主要双引号问题
/usr/local/mailgraph_ext/mailgraph-init start
/var/www/extsuite/extman/daemon/cmdserver -v -d
=====================================
让extmail支持 smtp SSL ,但是安装时要安装tsl如下:
-----
=============================
Jun 15 11:04:44 localhost postfix/pipe[30147]: 905A068B04D2: to=
解决方法:
1、查看/home/domains的权限及文件拥有者是否是 vuser/vgroup
2、/home/domains权限不能太高 ,改为 chmod -R 700 /home/domains
=====================================
2011-11-14 又全新安装extmail又出现更多问题
=====================================
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /var/w
yum install perl-DBD-MySQL
=====================================
由于数据库版本不同,导入 extmail.sql 数据库时报错:
ERROR 1064 (42000) at line 50: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM COMMENT='Ext/Webman - Admin Accounts'' at line 15
用文本编辑器打开extmail.sql,将数据库文件内的所有 TYPE=MyISAM 替换为 ENGINE=MyISAM ,保存退出。
丢弃导入到一半出错的数据库 extmail 。
mysql -u root -p
mysql> drop database extmail;
重新导入数据库。
=============================================================
Starting httpd: (13)Permission denied: make_sock: could not bind to address 0.0.0.0:8000
这是linux的这安全机制
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数
查看一下预定义
#semanage port -l
可以看出8000已经被使用
--------------------------------
关闭selinux状态:(使用无启重启系统的方法)
详见:http://blog.itechol.com/space-33-do-blog-id-5088.html
[root@cacti-test httpd]# setenforce 0 关闭命令
[root@cacti-test httpd]# getenforce 重新查看selinux状态
Permissive
尝试再次启动apache
==============================
因为系统有NGINX,使用了80端口,所以HTTPD只有用8000了
使用到端口的地方分别为
Listen 8000
NameVirtualHost *:8000
==============================================================================
DBI connect('database=extmail;host=localhost;mysql_socket=/var/lib/mysql/mysql.sock','webman',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) at /var/www/extsuite/extman/libs/Ext/Mgr/MySQL.pm line 45
vi /var/www/extsuite/extman/webman.cf
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
此处修改为:
SYS_MYSQL_SOCKET = /tmp/mysql.sock
改后要记得重启postfix
-----------2012.2.8--------------------
这次在这个问题上折腾了一天多,装了yum install perl-DBD-MySQL,但这个并没有解决问题,最后重启后可用的
==============================================================================
535 5.7.8 Error: authentication failed: generic failure
因为sasl 的目录有2个,分别是 /usr/lib/sasl2 跟 /usr/lib64/sasl2
最后通过修改 /usr/lib64/sasl2/smtpd.conf 跟 /usr/lib64/sasl2/smtpd.conf 内容为:
pwcheck_method: saslauthd
log_level: 3
mech_list: PLAIN LOGIN
saslauthd_path: /var/run/saslauthd/mux
并重启 sasl 服务,跟 postfix 服务后
==============================================
装到后面因为有事情把服务器重启了,最后安装软件时报找不到数据源,然后在网站下载软件再装,又遇到依赖关系,最后才发现因重启了电脑,所以之前挂载的ISO文件不在了,所以报找不到源
==================================================
SMTP rcpt error
这个问题一直没有解决,因为服务器里是/tmp/mysql.sock,而EXTMAIL一直找/var/lib/mysql/mysql.sock,中途我改了 /etc/my.cnf里的路径 为/var/lib/mysql/mysql.sock也不行
最后改了调试了许久都不行,最后又重装了MYSQL,EXTMAIL,并将mysql.sock指定到/var/lib/mysql/mysql.sock才行的
/usr/local/mysql/bin/mysqld_safe & --socket=/var/lib/mysql/mysql.sock
============================================
2、确定你的mysql.sock是不是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock
也可以
mysqladmin --socket=/var/lib/mysql/mysql.sock version -uroot -p
========================
php编译时
-o sapi/fpm/php-fpm
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1
---
今天在编译一个程序的时候出现如下错误:/usr/bin/ld: cannot find -l*
把解决方法在此贴一下,方便以后查阅。
原因:库文件缺失。
方法一:可用yum install libtool-l*来安装
方法二:当方法一不能成功时,可从其他机器拷贝文件到本机/usr/lib64/。具体文件:/usr/lib64/目录下与lib*相关文件(主要是二个:lib*.a和lib*.so);
==================================================
yum list
Error: requested datatype primary not available
弄了几次都出现同样的错误,最后重启服务器再yum clean all yum list
==================================================
postfix在进行sasl验证时,/var/log/maillog文件出现如下错误:
Mar 21 13:52:04 149 postfix/smtpd[26855]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
Mar 21 13:52:04 149 postfix/smtpd[26855]: warning: SASL authentication failure: Password verification failed
Mar 21 13:52:04 149 postfix/smtpd[26855]: warning: localhost.localdomain[127.0.0.1]: SASL plain authentication failed: generic failure
同时 /var/log/messages 日志报错:
unable to dlopen /usr/lib/sasl2/liblogin.so.2: /usr/lib/sasl2/liblogin.so.2: wrong ELF class: ELFCLASS32
因为sasl 的目录有2个,分别是 /usr/lib/sasl2 跟 /usr/lib64/sasl2
最后通过修改 /usr/lib64/sasl2/smtpd.conf 跟 /usr/lib64/sasl2/smtpd.conf 内容为:
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
并重启 sasl 服务,跟 postfix 服务后
问题解决!!!!!
service saslauthd restart
saslauthd postfix restart
=======================
[root@localhost yum.repos.d]# yum install courier-imap
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package courier-imap.x86_64 0:4.6.0-1 set to be updated
--> Processing Dependency: courier-authlib-devel >= 0.60.6.20080629 for package: courier-imap
--> Processing Dependency: libcourierauthsasl.so()(64bit) for package: courier-imap
--> Processing Dependency: libcourierauth.so()(64bit) for package: courier-imap
--> Running transaction check
--> Processing Dependency: libcourierauth.so.0()(64bit) for package: maildrop
.................................
maildrop-2.0.4-4hzq.x86_64 from installed has depsolving problems
--> Missing Dependency: libcourierauth.so.0()(64bit) is needed by package maildrop-2.0.4-4hzq.x86_64 (installed)
Error: Missing Dependency: libcourierauth.so.0()(64bit) is needed by package maildrop-2.0.4-4hzq.x86_64 (installed)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
最后没有办法
yum remove courier-authlib
yum install courier-authlib
yum install courier-authlib-mysql
yum install maildrop
-----------------------------------------
好下方法是网上提供的,我用了没有效果
解决:
yum --skip-broken update
rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
Error:There are unfinished transactions remaining. You mightconsider running yum-complete-transaction first to finish them
#yum install yum-utils
# yum-complete-transaction
Yum is telling you that there's an incoplete transaction - running 'yum-complete-transaction' first should clear it up.
=============================================
输入该命令:
[root@ ~]# rpm --import http://dag.wieers.com/rpm/packages/PRM-GPG-KEY.dag.txt
出现以下错误:
error: http://dag.wieers.com/rpm/packages/PRM-GPG-KEY.dag.txt: import read failed(-1).
warning: u 0x8aa18e8 ctrl 0x8aa2708 nrefs != 0 (dag.wieers.com http)
解决办法以一:换一个url
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt 【测试可以用】
解决办法以二(可行):先从网络上下载到本地,再安装
wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt
===========================================================
Feb 8 16:26:51 localhost imapd-ssl: [email protected]: Account's mailbox directory is not owned by the correct uid or gid
这个问题应该是我受网上的人影响配置了/var/www/extsuite/extman/webman.cf修改了里面的SYS_DEFAULT_GID = 2525 //即postfix组gid,这个不能改成2525,要默认为1000
这个问题最后我在系统后具体用户上下的 “改组ID(建议不修改)改为1000”
要记住
用户ID(建议不修改)
组ID(建议不修改)
都保持1000不变
===========================================================
请问如何修改ssh端口?
# vi /etc/ssh/sshd_config
找到port 22行, 前面有#表示注释,去掉,保存后重启SSH
/etc/rc.d/init.d/sshd restart
查看端口 netstat -anlt