是否有可能在OS X(雪豹,而不是服务器)的Postfix中使用MySQL表? 例如,在main.cf:
canonical_maps = mysql:/private/etc/postfix/mysql_canonical_maps.cf
使用postconf -m列出所有查找表types,我可以看到mysql不在缺省安装的默认支持types中。
我知道我可以安装一个不同版本的postfix与MySQL支持(例如,从macports),但我宁愿不这样做,因为它也想编译它自己的版本的Apache和MySQL,这两个我不需要。
因此,我的问题是双重的。 首先,是否有一些方法使OSX中的Postfix默认安装使用mysql表? 其次,是否存在一种被禁止的方式(通过一个有信誉的二进制文件或者编译)安装一个可以代替或者不干扰现有版本(以便让我使用任一版本)的postfix版本?
或者我只是坚持与macports?
我终于可以从源代码安装postfix了,其中一些提示来自于diymacserver.com的一篇文章,题目是在Snow Leopard上编译64位Postfix 。 这使我能够编译一个自定义版本的postfix支持mysql查询表。
安装的要点:
首先,安装MySQL。 我使用了一个通过mysql.com下载的二进制文件,效果很好。 还下载和解压缩后缀源到一个方便的位置。
在后缀源代码中,您需要在src/util/sys_defs.h从以下位置更改一行代码(第206行):
#define RESOLVE_H_NEEDS_NAMESER8_COMPAT_H
至:
/ * #define RESOLVE_H_NEEDS_NAMESER8_COMPAT_H * /
然后你需要让postfix知道你想在configuration中包含mysql表的支持。 源文章包含比我在这里介绍的更强大的configuration,据我所知,它足以启用mysql表支持:
make -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'
一旦完成,您就可以通过简单地inputmake来认真编译。 一旦编译完成,您将执行安装:
sudo make install
当提示inputconfiguration值时,您应该可以使用默认设置而不会出现问题。
这个解决scheme的主要缺点是用新编译的版本取代了现有的postfix安装,而不是让它们共存。 但是可以提供configuration来更改默认的安装位置,因此应该适合同时在同一个系统上使用多个postfix实例。