|
蓝森林 http://www.lslnet.com 2006年8月19日 12:58
☆ Gentoo Linux 下的 Qmail 安装过程 ☆
我用 Gentoo 差不多有一年时间了,使用过后我发现我越来越喜欢它。本来我就一直想用 Linux 配置一个 email 服务,而 gentoo 的安装软件很方便,于是就在网上找了一些安装资料,不知是我的理解能力差还是怎么的,试了 10 多次后还没成功(可怜我的硬盘),近日终以被我“折磨”成功了,现在把安装过程写了下来,希望对想配置 QMail 的朋友有一些帮助。
代码:
-->
☆ Gentoo Linux 下的 Qmail 安装过程 ☆
在安装之前你还需要安装 apache、mod_php,在这里就不再进行安装的说明。
以下是我安装时的 USE 参数
apache USE="threads"
mod_php USE="-X -qt mysql apache2 tiff gd gd-external imap"
我的 WWW 目录:/var/www/localhost
考虑到是做服务器,我的 ACCEPT_KEYWORDS="x86"
一、安装/配置 qmail
● 你要确保已经卸载了其他相关邮件服务软件,如:ssmtp, sendmail 或 postfix:
# emerge -C ssmtp
# emerge /usr/portage/mail-mta/qmail/qmail-1.03-r13.ebuild
● 自定义你的个人信息
# nano /var/qmail/control/servercert.cnf
# ebuild /var/db/pkg/mail-mta/qmail-1.03-r13/qmail-1.03-r13.ebuild config
● 查看 qmail 的域名信息,确保设置为你所需的域名
# cat /var/qmail/control/defaultdomain
# cat /var/qmail/control/locals
# cat /var/qmail/control/me
# cat /var/qmail/control/plusdomain
# cat /var/qmail/control/rcpthosts
● 添加启动
# ln -s /var/qmail/supervise/qmail-send /service/qmail-send
# ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd
# rc-update add svscan default
# /etc/init.d/svscan start
二、安装/配置 vpopmail
● 安装 qmail
# emerge vpopmail
● 在 mysql 里创建 vpopmail 数据表
# mysql -u root -p<你的mysql密码>
> create database vpopmail;
> use mysql;
> grant select, insert, update, delete, create, drop on vpopmail.* to
vpopmail@localhost identified by 'vpopmail密码';
> flush privileges;
> quit
● 修改 /etc/vpopmail.conf
# nano /etc/vpopmail.conf
localhost|0|vpopmail|<vpopmail密码>|vpopmail
localhost|0|vpopmail|<vpopmail密码>|vpopmail
● 修改文件权限
# chown root:vpopmail /etc/vpopmail.conf
# chmod 640 /etc/vpopmail.conf
# chown root:vpopmail /var/vpopmail/bin/vchkpw
# chmod 4711 /var/vpopmail/bin/vchkpw
● 使用 smtp 验证,修改 conf-smtpd 文件
# nano /var/qmail/control/conf-smtpd
TCPSERVER_OPTS="${TCPSERVER_OPTS} -R"
QMAIL_SMTP_AUTHHOST=$(<${QMAIL_CONTROLDIR}/me)
QMAIL_SMTP_CHECKPASSWORD="/var/vpopmail/bin/vchkpw"
QMAIL_SMTP_POST="<你的域名> /var/vpopmail/bin/vchkpw /bin/true"
三、安装/配置 courier-imap
● 安装 courier-imap
# emerge courier-imap
● 配置 courier-imap
# nano /etc/courier-imap/authdaemonrc
authmodulelist="authvchkpw" <-- 确保这一句只包含 authvchkpw
# nano /etc/courier-imap/imapd
IMAPDSTART=YES <-- 修改为 YES
AUTHMODULES="authvchkpw" <-- 确保这一句只包含 authvchkpw
# nano /etc/courier-imap/pop3d
POP3DSTART=YES <-- 修改为 YES
AUTHMODULES="authvchkpw" <-- 确保这一句只包含 authvchkpw
# nano /etc/courier-imap/pop3d.cnf
(编辑 [ req_dn ] 段落) <-- 可以不修改
# mkpop3dcert
# nano /etc/courier-imap/imapd.cnf
(编辑 [ req_dn ] 段落) <-- 可以不修改
# mkimapdcert
● 添加启动
# rc-update add courier-imapd default
# rc-update add courier-imapd-ssl default
# rc-update add courier-pop3d default
# rc-update add courier-pop3d-ssl default
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-imapd-ssl start
# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start
三、安装/配置 qmailadmin
● 安装 qmailadmin
# emerge ezmlm-idx-mysql
# emerge /usr/portage/net-mail/autorespond/autorespond-2.0.4.ebuild
# emerge /usr/portage/net-mail/qmailadmin/qmailadmin-1.2.1.ebuild
● 设置 qmailadmin
# cd /var/www/localhost/htdocs
# mv qmailadmin ../.
四、安装/配置 igenus
● 请到 http://www.igenus.org/ 下载最新的 igenus
# cd /tmp/igenus
# chmod -R 755 /tmp/igenus
# chown -R vpopmail:vpopmail /tmp/igenus
# cd /var/www/localhost/
# tar -zxvf igenus-2.0.2.tar.gz
# chown -R vpopmail:vpopmail igenus
# cd igenus
# nano config/config_inc.php
修改如下内容
$CFG_BASEPATH = "/var/www/localhost/igenus";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = '<vpopmail 密码>';
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = "/tmp/igenus";
$CFG_AUTORESPOND_PROM = "/var/qmail/bin/autorespond";
$CFG_NETDISK_PATH = "/var/netdisk";
$CFG_NETDISK_DEFAULT_QUOTA = 100;
创建网络磁盘
# cd /var
# mkdir netdisk
# chmod -R 755 netdisk
# chown -R vpopmail:vpopmail netdisk
导入 igenus 包中自带的 sql 文件
# mysql -u root -p vpopmail < /var/www/localhost/igenus/docs/iGENUS.sql
五、其他一些设置
● 修改 /etc/php/apache2-php4/php.ini 以下内容:
max_execution_time=60
memory_limit=20M
post_max_size=10M
file_uploads=on
upload_max_filesize=10M
register_globals=On
session.bug_compat_42=0
session.bug_compat_warn=0
sendmail_path = /var/qmail/bin/qmail-inject
● 修改 /etc/apache2/conf/commonapache2.conf
User vpopmail
Group vpopmail
● 建立虚拟登录域
# vadddomain <你的域名>
Please enter password for postmaster:<输入 postmaster 密码>
enter password again:<再次输入密码>
● 登陆 qmailadmin 建立用户
打开浏览器,键入地址: http://<你的域名>/cgi-bin/qmailadmin
以 postmaster 登陆,密码为上面设置的密码。
● vpopmail 用的是 .maildir 格式的邮箱,而 igenus 用的是 Maildir 格式的邮箱
# cd /var/vpopmail/domains/<你的域名>/<你的用户名>
# ln -s .maildir Maildir
# chown vpopmail:vpopmail Maildir
六、一些很实用的废话
● 如果你使用 foxmail 一类的软件,记住在你的 pop3 帐号后面一定要加 @<你的域名> 要不然会说登录错误。如:test@default.3322.org-->
引用:
-->
修改 /etc/vpopmail.conf
# nano /etc/vpopmail.conf
localhost|0|vpopmail|<vpopmail密码>|vpopmail
localhost|0|vpopmail|<vpopmail密码>|vpopmail
-->
|
不知怎么修改?
我的/etc/vpopmail.conf
引用:
-->
MYSQL_UPDATE_SERVER localhost
MYSQL_UPDATE_USER vpopmail
MYSQL_UPDATE_PASSWD secret
MYSQL_READ_SERVER localhost
MYSQL_READ_USER vpopmail
MYSQL_READ_PASSWD secret
-->
|
你的 vpopmail 是什么版本的呀?我的是 vpopmail 5.4.6-r1 的,不过从字面上理解应该是
MYSQL_UPDATE_SERVER localhost
MYSQL_UPDATE_USER vpopmail
MYSQL_UPDATE_PASSWD secret <-- 你的vpopmail密码
MYSQL_READ_SERVER localhost
MYSQL_READ_USER vpopmail
MYSQL_READ_PASSWD secret <-- 你的vpopmail密码
这是我的/etc/vpopmail.conf
# MYSQL CONNECTION SETTINGS FOR VPOPMAIL
#
# Line 1 defines the connection to use for database reads,
# Line 2 defines the connection to use for database updates/writes.
#
# If you omit line 2, then the same settings will be
# used for both read and write.
#
# settings for each line:
# host|port|user|password|database
#
#
# Note:
# The value of host may be either a hostname or an IP address.
# If host is 'localhost', then sockets (Unix) or named pipes (Windows)
# will be used instead of TCP/IP to connect to the server.
# Read-only DB
localhost|0|vpopmail|secret|vpopmail
# Write DB
localhost|0|vpopmail|secret|vpopmail
更证:igenus 的设置 $CFG_TEMP = "/tmp/igenus";
我是用Gentoo的hostname.dnsdomainname当域名,按照上面的步骤,到了“建立虚拟登陆域”的时候就出现问题了,
# vadddomain Gentoo.Gentoo2004
Please enter password for postmaster:
enter password again:
vmysql: sql error[c]: MySQL server has gone away
vmysql: sql error[b]: MySQL server has gone away
vmysql: sql error[3]: MySQL server has gone away
could not create limits table CREATE TABLE limits ( domain CHAR(64) PRIMARY KEY, maxpopaccounts INT(10) NOT NULL DEFAULT -1, maxaliases INT(10) NOT NULL DEFAULT -1, maxforwards INT(10) NOT NULL DEFAULT -1, maxautoresponders INT(10) NOT NULL DEFAULT -1, maxmailinglists INT(10) NOT NULL DEFAULT -1, diskquota INT(12) NOT NULL DEFAULT 0, maxmsgcount INT(12) NOT NULL DEFAULT 0, defaultquota INT(12) NOT NULL DEFAULT 0, defaultmaxmsgcount INT(12) NOT NULL DEFAULT 0, disable_pop TINYINT(1) NOT NULL DEFAULT 0, disable_imap TINYINT(1) NOT NULL DEFAULT 0, disable_dialup TINYINT(1) NOT NULL DEFAULT 0, disable_passwordchanging TINYINT(1) NOT NULL DEFAULT 0, disable_webmail TINYINT(1) NOT NULL DEFAULT 0, disable_relay TINYINT(1) NOT NULL DEFAULT 0, disable_smtp TINYINT(1) NOT NULL DEFAULT 0, perm_account TINYINT(2) NOT NULL DEFAULT 0, perm_alias TINYINT(2) NOT NULL DEFAULT 0, perm_forward TINYINT(2) NOT NULL DEFAULT 0, perm_autoresponder TINYINT(2) NOT NULL DEFAULT 0, perm_maillist TINYINT(4) NOT NULL DEFAULT 0, perm_quota TINYINT(2) NOT NULL DEFAULT 0, perm_defaultquota TINYINT(2) NOT NULL DEFAULT 0 )
vmysql: sql error[p]: MySQL server has gone away
Error: (vadduser) can't read domain limits
用下一步的地址,无法登陆,显示 invalid login.哪里有问题?如何做?
从错误的提示信息看,你应该是没有设置正确 /etc/vpopmail.conf ,能否把你的 vpopmail 版本说明一下。
题外话:
Gentoo.Gentoo2004 ? 有这样的域名吗?
如果你用的是 ADSL 上网,可以在 http://www.3322.org 里申请一个动态域名。
gentoo是我的hostname,gentoo2004是dnshostname,是安装gentoo时设置的那个hostname,dnsdomainname。
从浏览器访问http://gentoo.gentoo2004/cgi-bin/qmailadmin显示
qmailadmin 1.2.1
vpopmail 5.4.0
把你的 vpopmail 升到 5.4.6-r1 试试。升了 vpopmail 后你可能还需要执行一下 etc-update 把 vpopmail 的配置文件升级一下,然后重新配置 vpopmail
还有你是自己做 DNS 吗?你的域名我 ping 不通。
我是用 ADSL 上网,在 http://www.3322.org 上申请了一个 default.3322.org 的域名
请参考我的如下设置
# cat /etc/hostname
default
# cat /etc/dnsdomainname
# cat /etc/nisdomainname
# cat /var/qmail/control/defaultdomain
# cat /var/qmail/control/locals
# cat /var/qmail/control/me
# cat /var/qmail/control/plusdomain
# cat /var/qmail/control/rcpthosts
以上所有都为 default.3322.org
引用:
-->
最初由 nothing9 发表
[b]我是用Gentoo的hostname.dnsdomainname当域名,按照上面的步骤,到了“建立虚拟登陆域”的时候就出现问题了,
# vadddomain Gentoo.Gentoo2004
Please enter password for postmaster:
enter password again:
vmysql: sql error[c]: MySQL server has gone away
vmysql: sql error: MySQL server has gone away
vmysql: sql error[3]: MySQL server has gone away
could not create limits table CREATE TABLE limits ( domain CHAR(64) PRIMARY KEY, maxpopaccounts INT(10) NOT NULL DEFAULT -1, maxaliases INT(10) NOT NULL DEFAULT -1, maxforwards INT(10) NOT NULL DEFAULT -1, maxautoresponders INT(10) NOT NULL DEFAULT -1, maxmailinglists INT(10) NOT NULL DEFAULT -1, diskquota INT(12) NOT NULL DEFAULT 0, maxmsgcount INT(12) NOT NULL DEFAULT 0, defaultquota INT(12) NOT NULL DEFAULT 0, defaultmaxmsgcount INT(12) NOT NULL DEFAULT 0, disable_pop TINYINT(1) NOT NULL DEFAULT 0, disable_imap TINYINT(1) NOT NULL DEFAULT 0, disable_dialup TINYINT(1) NOT NULL DEFAULT 0, disable_passwordchanging TINYINT(1) NOT NULL DEFAULT 0, disable_webmail TINYINT(1) NOT NULL DEFAULT 0, disable_relay TINYINT(1) NOT NULL DEFAULT 0, disable_smtp TINYINT(1) NOT NULL DEFAULT 0, perm_account TINYINT(2) NOT NULL DEFAULT 0, perm_alias TINYINT(2) NOT NULL DEFAULT 0, perm_forward TINYINT(2) NOT NULL DEFAULT 0, perm_autoresponder TINYINT(2) NOT NULL DEFAULT 0, perm_maillist TINYINT(4) NOT NULL DEFAULT 0, perm_quota TINYINT(2) NOT NULL DEFAULT 0, perm_defaultquota TINYINT(2) NOT NULL DEFAULT 0 )
vmysql: sql error[p]: MySQL server has gone away
Error: (vadduser) can't read domain limits
用下一步的地址,无法登陆,显示 invalid login.哪里有问题?如何做?
-->
|
这个应该是域名和IP没有对应的关系。QMAIL对IP和域名的对应要求严格。
to blackwhite
我不是说他的域名有问题,我只是对他的域名感到奇怪.
________________
把你的 vpopmail 升到 5.4.6-r1 试试。………………
引用:
-->
最初由 cnyg 发表
to blackwhite
我不是说他的域名有问题,我只是对他的域名感到奇怪.
________________
把你的 vpopmail 升到 5.4.6-r1 试试。………………
-->
|
应该是他的域名和IP的关系没有处理好。他的域名是有问题的,名字好怪异。
|