我的目的是将客户联系信息的 MySQL 表作为地址簿(通过 LDAP)提供给 Outlook/Thunderbird 客户端。
我知道 OpenLDAP 有一个 MySQL 后端选项,但我还没有找到关于如何配置它的任何清晰、可靠的文档。
我需要设置哪些 OpenLDAP 选项,以及在哪里设置它们?
我正在运行 Ubuntu 9.04。
更新:
我已经设置了 ODBC 文件,并将测试数据导入数据库,但仍然不知道如何配置 slapd 以使用数据库。在某个配置文件中的某个地方,我必须说“slapd,使用名为‘LDAP2MySQL’的 ODBC 资源”。但在哪里呢?如何配置呢?
另一更新:
我对此一无所知:
Ubuntu 软件包版本毕竟没有 SQL 支持,所以我删除了它,并尝试从源代码安装。
我认为它安装正确,但“make test”产生错误“比较失败。/scripts/test003-search 失败(退出 1)”。
我还是执行了“make install”,因为谷歌似乎没有关于如何解决“比较失败”问题的任何解释。
现在我甚至无法启动这个愚蠢的东西。Ubuntu 软件包中可以使用的“/etc/init.d/slapd start”不起作用。openLDAP 手册说“/usr/local/libexec/slapd”是启动它的命令。……但该命令没有输出。我甚至不知道它是否正在运行。我放弃了。
另一更新:
好的,我运行了“top | grep slapd”,但什么也没得到,所以我猜它没有运行。但没有错误消息。那又怎么样?我必须猜测为何无法启动?
更新:
我重新安装了操作系统,一切从头开始。现在我甚至无法 ./configure openldap,因为它找不到 db.h。已安装“db4.7-util”包。我越努力让它工作,它就越不工作。我不敢相信没有人知道如何做到这一点。
更新:
我刚刚从源代码安装了 BerkeleyDB,但 OpenLDAP 编译器仍然显示:
检查 db.h...没有 配置:错误:BDB/HDB:BerkeleyDB 不可用
一个网站建议我尝试:
导出 CPPFLAGS="-I / usr / local / berkeleydb / include" 导出 LDFLAGS="-L / usr / local / berkeleydb / lib"
但那也不起作用。
更新:
好的。我终于可以编译了。
我必须使用:
CPPFLAGS="-I / usr / local / berkeleydb / include -D_GNU_SOURCE" 导出 CPPFLAGS LDFLAGS="-L / usr / local / lib -L / usr / local / berkeleydb / lib -R / usr / local / berkeleydb / lib" 导出 LDFLAGS LD_LIBRARY_PATH="/usr/local/berkeleydb/lib" 导出 LD_LIBRARY_PATH ./configure--启用-sql
现在我又面临另一个问题。当我运行“make test”时,它永远挂起:
>>>>> 正在启动 test001-slapadd... 运行defines.sh 运行 slapadd 来构建 slapd 数据库...
显然我应该安装两个补丁来解决这个问题,但运气不太好。我想我找到了其中一个,但我不知道如何应用它。
答案1
这OpenLDAP 管理指南似乎以相当清晰的方式介绍了设置过程。而且man 5 slapd-sql
看起来透彻而完整。