В основном я следую этому руководству: https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
Мои проблемы возникли с первым тестовым Postfix.
postconf -m
postconf: warning: /etc/postfix/dynamicmaps.cf: file is owned or writable by non-root users -- skipping this file
btree
cidr
environ
fail
hash
inline
internal
memcache
nis
pipemap
proxy
randmap
regexp
socketmap
static
tcp
texthash
unionmap
unix
Похоже, я забыл установить postfix-mysql, но при повторной попытке установки получаю:
postfix-mysql is already the newest version (3.1.0-3).
postmap -q example.com mysql: / etc / postfix / mysql-virtual-mailbox-domains .cf
postmap: warning: /etc/postfix/dynamicmaps.cf: file is owned or writable by non-root users -- skipping this file
postmap: fatal: unsupported dictionary type: mysql
Все файлы .cf выглядят так, как в учебнике. Для файлов конфигурации mysql- * я устанавливаю владельца и группу "postfix".
Есть идеи?
Изменить:
В моем случае я установил postfix-mysql.
Хорошо, после многих часов, проведенных над этой проблемой, я наконец нашел решение:
Postfix пытается прочитать файл: /etc/postfix/dynamicmaps.cf
и не может , потому что у вас неправильные разрешения.Я установил новых владельцев и разрешение на изменение решило мою проблему.
chown root.root /etc/postfix/dynamicmaps.cf
chmod 640 /etc/postfix/dynamicmaps.cf
Может быть, этот ответ поможет кому-нибудь другому.
Изменить /etc/postfix/dynamicmaps.cf
Добавить абсолютный путь к postfix-mysql .so
В моем случае это путь /usr/lib/postfix/postfix-mysql.so
Как сказано в одном из других ответов, изменение /etc/postfix/dynamicmaps.cf
следующим образом:
# Postfix dynamic maps configuration file.
#
#type location of .so file open function (mkmap func)
#==== ================================ ============= ============
tcp /usr/lib/postfix/dict_tcp.so dict_tcp_open
sqlite /usr/lib/postfix/dict_sqlite.so dict_sqlite_open
#mysql /usr/lib/postfix/dict_mysql.so dict_mysql_open
mysql /usr/lib/postfix/postfix-mysql.so dict_mysql_open
работает для меня.