简体   繁体   English

如何开始鸽舍?

[英]How to start dovecot?

I'm building a web server to host multiple websites. 我正在构建一个Web服务器来托管多个网站。 I got everything working except the mail server. 除了邮件服务器,我得到了一切。 I'm using linode to host my vps and I've been following their tutorials. 我正在使用linode来托管我的vps而且我一直在关注他们的教程。 FYI, I'm using Ubuntu 11.10. 仅供参考,我使用的是Ubuntu 11.10。

Here is the link I've been following, http://library.linode.com/email/postfix/dovecot-mysql-ubuntu-10.04-lucid . 这是我一直关注的链接, http://library.linode.com/email/postfix/dovecot-mysql-ubuntu-10.04-lucid I got up to the part where it tells me to restart dovecot, so I tried "service dovecot restart". 我到达了它告诉我重新启动dovecot的部分,所以我尝试了“service dovecot restart”。 But then I get this "restart: Unknown instance:". 但后来我得到了这个“重启:未知实例:”。 I'm logged in as root, so I'm not using sudo. 我以root身份登录,所以我没有使用sudo。

Since that didn't work I tried "/etc/init.d/dovecot restart" and I get "dovecot start/running, process 4760". 由于那不起作用,我尝试了“/etc/init.d/dovecot restart”,我得到“dovecot开始/运行,过程4760”。 So I try "/etc/init.d/dovecot status" and I get "dovecot stop/waiting". 所以我尝试“/etc/init.d/dovecot status”,我得到“dovecot停止/等待”。

So I tried "service dovecot start" and I get "dovecot start/running, process 4781". 所以我尝试了“服务dovecot开始”,我得到“dovecot开始/运行,过程4781”。 So I tried to get the status, so I tired "service dovecot status" and got "dovecot stop/waiting" 所以我试图获得状态,所以我厌倦了“服务dovecot状态”并得到“dovecot停止/等待”

Then I tired "/etc/init.d/dovecot start" and I get "dovecot start/running, process 4794". 然后我累了“/etc/init.d/dovecot start”,我得到“dovecot开始/运行,进程4794”。 So I tired to get the status, so I tired "/etc/init.d/dovecot status" and got "dovecot stop/waiting" 所以我厌倦了获得状态,所以我累了“/etc/init.d/dovecot status”并得到了“鸽子停止/等待”

Just for kicks and giggles I tired to kill the process, I used the PID that I got when I did "service dovecot start", this was the command "kill -9 4444" and I get this "bash: kill: (4805) - No such process" 只是为了踢腿和咯咯笑我厌倦了杀死这个过程,我使用了当我做“服务dovecot开始”时得到的PID,这是命令“kill -9 4444”我得到这个“bash:kill:(4805) - 没有这样的过程“

Am I doing something wrong? 难道我做错了什么?

--EDIT 1-- --EDIT 1--

The following are logs that were found in /var/log/syslog that involved dovecot 以下是在/ 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

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

The following is the dovecot.conf file 以下是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
        }
    }
}

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

The following is what is in /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

As a general tip, try running dovecot directly in the foreground: 作为一般提示,尝试直接在前台运行dovecot:

dovecot -F 鸽舍-F

The reason is the foreground will often output loadup error messages directly to the console, which will often allow you to quickly track down errors that are not usually logged (such as config parsing errors). 原因是前台通常会将加载错误消息直接输出到控制台,这通常可以让您快速跟踪通常不会记录的错误(例如配置解析错误)。

That means it starts, tries to parse the config and fails. 这意味着它启动,尝试解析配置并失败。 Look in /var/log for the log that accumulates dovecot logging to determine what the problem is. 在/ var / log中查找累积dovecot日志记录的日志,以确定问题所在。 Which log it is, will depend on the Linux distro you're using. 它的日志取决于您正在使用的Linux发行版。

-- EDIT -- - 编辑 -

Status 89 means there's an error in the config, related to parser. 状态89表示配置中存在与解析器相关的错误。 Please have a look first whether you have terminated all {} curly bracers. 请先查看是否已终止所有{}花花环腕。 This would be my first hunch. 这将是我的第一次预感。

The tutorial is from May 9th, 2010. 该教程是2010年5月9日。
Looking at dovecots changelog you see... 看看dovecots changelog,你看......
v1.2.6 2009-10-05 The last dovecot version before that date v1.2.6 2009-10-05在该日期之前的最后一个dovecot版本
v2.0.rc1 2010-07-02 The next dovecot version after that date v2.0.rc1 2010-07-02该日期之后的下一个dovecot版本

So the tutorial probably will use a 1.x configuration, while nowadays we will use dovecot 2.x. 因此教程可能会使用1.x配置,而现在我们将使用dovecot 2.x.

Now I found this http://wiki2.dovecot.org/Upgrading/2.0 现在我发现了这个http://wiki2.dovecot.org/Upgrading/2.0
Next to some other info, it provides a way to convert the config from 1.2 to 2.0. 在其他一些信息旁边,它提供了一种将配置从1.2转换为2.0的方法。

Here's even more about upgrading http://wiki2.dovecot.org/Upgrading 这里有更多关于升级http://wiki2.dovecot.org/Upgrading的信息

I have no solution though (yet) 我还没有解决方案(还)

Edit: (Solution) 编辑:(解决方案)

First of all, you need to install also: 首先,您还需要安装:

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

if you like, read the hints on upgrading the old 1.x config http://wiki2.dovecot.org/Upgrading 如果您愿意,请阅读有关升级旧1.x配置http://wiki2.dovecot.org/Upgrading的提示

My dovecot.conf: 我的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
}

My dovecot-db.conf.ext 我的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';

Also edit your /etc/postfix/master.cf so it includes smtps (smtp using SSL/TLS on 465). 还要编辑/etc/postfix/master.cf ,使其包含smtps(在465上使用SSL / TLS的smtp)。 I had to activate it to reach the smtp from my home, because port 25 was blocked from my isp (it's common). 我必须激活它才能从家里到达smtp,因为端口25被我的isp阻塞了(这很常见)。 Also I prefer smtp with transport layer security. 另外我更喜欢带传输层安全性的smtp。

smtps     inet  n       -       -       -       -       smtpd

and run service postfix restart 并运行service postfix restart


Sources: 资料来源:
I've gathered all infos about this by googling, and don't know where I was everywhere, but the last problem 我通过谷歌搜索收集了所有关于此的信息,并且不知道我到处都是,但最后一个问题

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.

I solved reading some of http://workaround.org/ispmail/lenny/configure-dovecot 我解读了一些http://workaround.org/ispmail/lenny/configure-dovecot
Basically, I found that you get good results when you google whatever error output you get in here: 基本上,我发现当你谷歌你在这里得到的任何错误输出时,你会得到很好的结果:

/home/vmail/dovecot-deliver.log
/var/log/mail.log
/var/log/mail.err
/var/log/syslog

If no relevant messages appear in syslog, and dovecot is running under Upstart, configuration errors may be found in /var/log/upstart/dovecot.log . 如果syslog中没有相关消息,并且dovecot在Upstart下运行,则可能在/var/log/upstart/dovecot.log找到配置错误。

All credit to comment by CameronNemo . 所有评论都由CameronNemo评论

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM