4

我正在构建一个 Web 服务器来托管多个网站。除了邮件服务器,我一切正常。我正在使用 linode 来托管我的 vps,并且我一直在关注他们的教程。仅供参考,我使用的是 Ubuntu 11.10。

这是我一直关注的链接, http: //library.linode.com/email/postfix/dovecot-mysql-ubuntu-10.04-lucid。我到了告诉我重新启动 dovecot 的部分,所以我尝试了“service dovecot restart”。但后来我得到这个“重启:未知实例:”。我以 root 身份登录,所以我没有使用 sudo。

由于那不起作用,我尝试了“/etc/init.d/dovecot restart”,然后得到“dovecot start/running,process 4760”。所以我尝试“/etc/init.d/dovecot status”并得到“dovecot stop/waiting”。

所以我尝试了“服务鸽子启动”,我得到“鸽子启动/运行,进程 4781”。所以我试图获得状态,所以我厌倦了“服务鸽舍状态”并得到“鸽舍停止/等待”

然后我厌倦了“/etc/init.d/dovecot start”,我得到了“dovecot start/running,process 4794”。所以我厌倦了获得状态,所以我厌倦了“/etc/init.d/dovecot status”并得到了“dovecot stop/waiting”

只是为了踢球和咯咯笑,我厌倦了终止进程,我使用了我在执行“服务 dovecot 启动”时得到的 PID,这是命令“kill -9 4444”,我得到了这个“bash: kill: (4805) - 没有这样的过程”

难道我做错了什么?

--编辑1--

以下是在 /var/log/syslog 中找到的涉及 dovecot 的日志

dovecot: master: Dovecot v2.0.13 starting up (core dumps disabled)
dovecot: ssl-params: Generating SSL parameters
dovecot: ssl-params: SSL parameters regeneration completed
dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: config: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: anvil: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
kernel: init: dovecot main process (10276) terminated with status 89
kernel: init: dovecot main process (10289) terminated with status 89
kernel: init: dovecot main process (10452) terminated with status 89
kernel: init: dovecot main process (2275) terminated with status 89
kernel: init: dovecot main process (3028) terminated with status 89
kernel: init: dovecot main process (3216) terminated with status 89
kernel: init: dovecot main process (3230) terminated with status 89
kernel: init: dovecot main process (3254) terminated with status 89
kernel: init: dovecot main process (3813) terminated with status 89
kernel: init: dovecot main process (3845) terminated with status 89
kernel: init: dovecot main process (4664) terminated with status 89
kernel: init: dovecot main process (4760) terminated with status 89
kernel: init: dovecot main process (4781) terminated with status 89
kernel: init: dovecot main process (4794) terminated with status 89
kernel: init: dovecot main process (4805) terminated with status 89

--编辑 2 (/etc/dovecot/dovecot.conf)--

以下是dovecot.conf文件

protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}

protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@[mydomainname.com]
    mail_plugins = sieve
    global_script_path = /home/vmail/globalsieverc
}

protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}

auth default {
    user = root

    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }

    userdb static {
        args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }

    socket listen {
        master {
            path = /var/run/dovecot/auth-master
            mode = 0600
            user = vmail
        }

        client {
            path = /var/spool/postfix/private/auth
            mode = 0660
            user = postfix
            group = postfix
        }
    }
}

-- 编辑 3 (/var/log/mail.log) --

以下是 /var/log/mail.log 中的内容

dovecot: master: Dovecot v2.0.13 starting up (core dumps disabled)
dovecot: ssl-params: Generating SSL parameters
postfix/master[9917]: daemon started -- version 2.8.5, configuration /etc/postfix
dovecot: ssl-params: SSL parameters regeneration completed
postfix/master[9917]: terminating on signal 15
postfix/master[10196]: daemon started -- version 2.8.5, configuration /etc/postfix
dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: config: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: anvil: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: log: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
postfix/master[2435]: daemon started -- version 2.8.5, configuration /etc/postfix
postfix/master[2435]: terminating on signal 15
postfix/master[2965]: daemon started -- version 2.8.5, configuration /etc/postfix
4

5 回答 5

22

作为一般提示,尝试直接在前台运行 dovecot:

鸽舍-F

原因是前台经常会直接将加载错误消息输出到控制台,这通常可以让您快速跟踪通常不记录的错误(例如配置解析错误)。

于 2013-05-24T15:13:00.713 回答
3

这意味着它启动,尝试解析配置并失败。在 /var/log 中查找累积 dovecot 日志的日志以确定问题所在。它是哪个日志,取决于您使用的 Linux 发行版。

- 编辑 -

状态 89 表示配置中存在与解析器相关的错误。请先查看您是否已终止所有 {} 花括号。这将是我的第一个预感。

于 2011-11-29T23:22:27.063 回答
0

该教程来自 2010 年 5 月 9 日。
查看 dovecot 更改日志,您会看到...
v1.2.6 2009-10-05该日期之前的最后一个 dovecot 版本 该日期
v2.0.rc1 2010-07-02之后的下一个 dovecot 版本

所以本教程可能会使用 1.x 配置,而现在我们将使用 dovecot 2.x。

现在我发现了这个http://wiki2.dovecot.org/Upgrading/2.0
在其他一些信息旁边,它提供了一种将配置从 1.2 转换为 2.0 的方法。

这里有更多关于升级http://wiki2.dovecot.org/Upgrading

虽然我没有解决方案(还)

编辑:(解决方案)

首先,您还需要安装:

apt-get install dovecot-sieve  
apt-get install dovecot-managesieved  
apt-get install dovecot-mysql

如果您愿意,请阅读有关升级旧 1.x 配置的提示 http://wiki2.dovecot.org/Upgrading

我的 dovecot.conf:

log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir
namespace {
  inbox = yes
  location = 
  prefix = INBOX.
  separator = .
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocols = imap pop3
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-master {
    mode = 0600
    user = vmail
  }
  user = root
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
#userdb {
#  args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
#  driver = static
#}
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  log_path = /home/vmail/dovecot-deliver.log
  mail_plugins = sieve
  postmaster_address = postmaster@example.com
  plugin {
    sieve_global_path = /var/vmail/globalsieverc
    # The include extension fetches the :personal scripts from this 
    # directory. When ManageSieve is used, this is also where scripts 
    # are uploaded.

    sieve_dir = ~/sieve

    # The location of the user's active script:

    sieve = ~/.dovecot.sieve

    # Directory for :global include scripts (for v1.1 include extension)

    sieve_global_dir = /var/vmail/sieve

    sieve_maxscriptsize = 128
  }
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}

我的 dovecot-db.conf.ext

driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=your_password
default_pass_scheme = PLAIN-MD5
#password_query = SELECT email as user, password FROM users WHERE email='%u';
#user_query = SELECT email as user, password, 5000 as uid, 5000 as gid, '/var/vmail/%d/%n' as home FROM view_users WHERE email='%u';
password_query = SELECT email AS user, password, 5000 AS userdb_uid, 5000 AS userdb_gid, '/var/vmail/%d/%n' AS userdb_home FROM users WHERE email = '%u';
user_query = SELECT email AS user, password, 5000 AS uid, 5000 AS gid, '/var/vmail/%d/%n' AS home FROM users WHERE email = '%u';

还要编辑您的/etc/postfix/master.cf,使其包含 smtps(在 465 上使用 SSL/TLS 的 smtp)。我必须激活它才能从我家访问 smtp,因为我的 isp 阻止了端口 25(这很常见)。此外,我更喜欢具有传输层安全性的 smtp。

smtps     inet  n       -       -       -       -       smtpd

并运行service postfix restart


资料来源:
我通过谷歌搜索收集了有关此的所有信息,但不知道我在哪里,但最后一个问题

2013-01-03 16:43:27 lda: Error: userdb lookup(info@example.com): Disconnected unexpectedly
2013-01-03 16:43:27 lda: Fatal: Internal error occurred. Refer to server log for more information.

我解决了阅读一些http://workaround.org/ispmail/lenny/configure-dovecot
基本上,我发现当你用谷歌搜索你在这里得到的任何错误输出时,你都会得到很好的结果:

/home/vmail/dovecot-deliver.log
/var/log/mail.log
/var/log/mail.err
/var/log/syslog
于 2013-01-03T12:52:45.827 回答
0

If no relevant messages appear in syslog, and dovecot is running under Upstart, configuration errors may be found in /var/log/upstart/dovecot.log.

All credit to comment by CameronNemo.

于 2016-02-22T18:49:54.610 回答
-2

尝试删除 dovecot-postfix 包和 /etc/dovecot/conf.d/99-*.conf 文件它对我有帮助

于 2013-10-07T14:16:44.070 回答