现在的位置: 首页 > 操作系统 > 正文

ubuntu安装openldap

2018年10月10日 操作系统 ⁄ 共 2013字 ⁄ 字号 评论关闭

在ubuntu 14.04 上,安装 openldap,如果你搜索下,你会发现到处都在说 "configure: error: BDB/HDB: BerkeleyDB not available" 的错误。而且,每篇文章都会说是“BerkeleyDB和openldap不兼容,从而导致的各种问题”。

今天安装了下,都特么累出屎了,好在翻到这篇文章
http://blog.sina.com.cn/s/blog_56d8ea900100q5jr.html
 

看到这篇文章的作者可以用各种参数来解决问题,我觉得,最新版本应该也可以成功安装的,果然,BerkeleyDB和openldap都用最新版本,安装成功(编译openldap时,会有很多warning。链接中的文章,也会报同样的warning。作为一个 low逼 java程序员,就不追究这个了)


下面先列出安装步骤,再测试是否安装成功

本机环境是:32bit 的 Ubuntu 14.04 LTS

BerkeleyDB和openldap都用最新版本(我安装时的日期:2014年07月20日 )

db-6.1.19.zip
http://download.oracle.com/otn/berkeley-db/db-6.1.19.zip
openldap-2.4.39.tgz
ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.39.tgz

首先安装 BerkeleyDB.6.1

unzip db-6.1.19.zip
cd db-6.1.19/build_unix/
../dist/configure
sudo make
sudo make install

BerkeleyDB.6.1安装到:/usr/local/BerkeleyDB.6.1/lib

下面这步非常重要(如果没有这步,最后运行 slapd 时,会报 "error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory
" 的错误)

--然后在最后面,加上一行:/usr/local/BerkeleyDB.6.1/lib
sudo vim /etc/ld.so.conf
sudo ldconfig -v

OK,BerkeleyDB.6.1 安装完毕,安装到:/usr/local/BerkeleyDB.6.1/lib

然后安装 openldap-2.4.39

tar xvf openldap-2.4.39.tgz
cd openldap-2.4.39/
sudo ./configure CPPFLAGS="-I/usr/local/BerkeleyDB.6.1/include -D_GNU_SOURCE" LDFLAGS="-L/usr/local/BerkeleyDB.6.1/lib"

sudo make depend
sudo make
sudo make install

sudo make时,会有好多warning,直接不管(我们是程序员嘛,只关心 Error 的)

OK,openldap-2.4.39 安装完毕,安装到:/usr/local/etc/openldap

最后测试 我们安装是否成功

先简单配置下

--把 suffix和rootdn改成下面这种(后面插入时,我们就用这个example)
sudo vim /usr/local/etc/openldap/slapd.conf

suffix      "dc=example,dc=com"
rootdn      "cn=Manager,dc=example,dc=com"

启动 slapd

su root -c /usr/local/libexec/slapd
--下面这句,应该可以运行成功
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

建立一个文件example.ldif,包含这些内容

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: Example Company
dc: example

dn: cn=Manager,dc=example,dc=com
objectclass: organizationalRole
cn: Manager

将文件中的内容插入数据库,然后查询出此记录

如果需要密码,密码是secret(默认密码,位于/usr/local/etc/openldap/slapd.conf, 我们没改过)

ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f example.ldif
ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'

最后 ldapsearch 运行完成,你将看到这样的结果



抱歉!评论已关闭.