是否可以在 OS X(Snow Leopard,不是服务器)下在 postfix 中使用 mysql 表?例如,在main.cf:
canonical_maps = mysql:/private/etc/postfix/mysql_canonical_maps.cf
使用postconf -m
列出所有查找表类型,我可以看到它mysql
不属于默认安装的默认支持类型。
我知道我可以安装带有 mysql 支持的不同版本的 postfix(例如,来自 macports),但我不想这样做,因为它还想编译它自己的 apache 和 mysql 版本,而这两者都是我不需要的。
因此,我的问题有两个方面。首先,是否有某种方法可以让 OS X 中默认安装的 postfix 使用 mysql 表?其次,是否有一种固定的方法来安装(通过可靠的二进制文件或通过编译)一个版本的 postfix,该版本可以替换现有版本或不干扰现有版本(以便允许我使用任一版本)?
或者我只是被 macports 困住了?
答案1
我最终能够从源代码安装 postfix,并从 diymacserver.com 上的一篇文章中获得了一些提示,该文章的标题为在 Snow Leopard 上编译 64 位 Postfix. 这使我能够编译一个带有 mysql 表查找支持的定制版本的 postfix。
安装要点:
首先,安装 MySQL。我使用通过 mysql.com 下载的二进制 .pkg,效果很好。另外,下载并解压 postfix 源代码到方便的位置。
在 Postfix 源代码中,您需要更改其中的一行代码(第 206 行)src/util/sys_defs.h
:
#定义 RESOLVE_H_NEEDS_NAMESER8_COMPAT_H
到:
/*#定义RESOLVE_H_NEEDS_NAMESER8_COMPAT_H*/
然后,您需要让 postfix 知道您想要在配置中包含 mysql 表支持。源文章包含的配置比我在此处介绍的配置更复杂,据我所知,该配置至少足以启用 mysql 表支持:
使-f Makefile.init makefiles CCARGS ='-arch x86_64' \ '-DHAS_MYSQL -I /usr/local/mysql/include' \ AUXLIBS ='-L / usr / local / mysql / lib -lmysqlclient -lz -lm -lresolv'
一旦完成,你就可以开始认真编译了,只需输入make
。一旦编译完成,你将执行安装:
安装
当提示输入配置值时,您应该能够毫无问题地使用默认值。
这个解决方案的主要缺点是它用新编译的版本替换了现有的 postfix 安装,而不是允许它们共存。配置能但是,可以提供更改默认安装位置的功能,因此应该适合在同一系统上同时使用多个 Postfix 实例。