http://zhaoshijie.iteye.com/blog/819382
1.安装OpenSSL,安装路径 默认 : /usr/local/ ssl
tar -zxvf openssl-1.0.0d.tar.gz
cd openssl-1.0.0d
./Configure
make
make install
2.安装BerkeleyDB,安装路径默认: /usr/local/ BerkeleyDB.5.1
tar -zxvf db-5.1.25.tar.gz
cd db-5.1.25
cd build_unix
../dist/configure
makemake install
安装完成后要将该软件的库路径/usr/local/BerkeleyDB.5.1/lib加入到/etc/ld.so.conf中,然后执行ldconfig使配置文件生效这样在编译openldap时候才能找到该库文件。ld.so.conf是系统动态链接库的配置文件,此文件中包含了可被Linux共享的动态链接库所在目录的名字(系统目录/lib,/usr/lib除外),各个目录之间以空格或者冒号或者逗号隔开。一般的Linux发行版中都含有/usr/X11R6/lib这个共享库,这是X Window窗口系统的动态链接库所在目录。ldconfig是他的管理命令。
如果你不按照上面的做法,也没有关系,只要把/usr/local/BerkeleyDB.4.5下面lib, include目录下面的所有文件,手动拷贝到/usr/lib和/usr/include目录下面就可以了.作用和前面修改配置文件相同,目的也是这样在编译openldap时候才能找到该库文件.
使用命令:cp /usr/local/ BerkeleyDB.4.5/include/* /usr/includecp /usr/local/ BerkeleyDB.4.5/lib/* /usr/lib3.安装OpenLDAP 2.4.24 , 安装路径默认 :/usr/local/etc/openldap
tar -zxvf openldap-2.4.24.tgz
cd openldap-2.4.24
export CPPFLAGS="-I/usr/local/BerkeleyDB.5.1/include"
export LDFLAGS="-L/usr/local/lib -L/usr/local/BerkeleyDB.5.1/lib"
export CPPFLAGS="-I/usr/local/ssl/include"
export LDFLAGS="-L/usr/local/ssl/lib"
./configure --with-tls=openssl --enable-dynamic
一 旦你已运行 configure 脚本,那么 configure 脚本输出的最后一行应当是 Please "make depend" to build dependencies
如果不是上面的这行的话,则说明 configure 脚本失败了,你需要参看它的输出来决定是在什么地方出了点问题。除非 configure 完全成功了,否则你不能进入到下一步===================================================
env
CPPFLAGS="-I/usr/local/BerkeleyDB.5.1/include" LDFLAGS="-L/usr/local/BerkeleyDB.5.1/lib" CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" ./configure 说明 : 将 BerkeleyDB.5.1 和 ssl 的 lib 和 include 在编译时临时加入到环境变量中 . 使用./configure --with-tls=openssl --enable-dynamic解决configure: error: MozNSS not found - please specify the location to the NSPR and NSS header files in CPPFLAGS and the location to the NSPR and NSS libraries in LDFLAGS (if not in the system location) ===================================================make depend ( 构建依赖关系 )
make make install4. openldap 的启动
使用命令 :/usr/local/libexec/slapd 测试是否启动:ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts 显示如下: # extended LDIF## LDAPv3# base <> with scope baseObject# filter: (objectclass=*)# requesting: namingContexts ##dn:namingContexts: dc=my-domain,dc=com# search resultsearch: 2result: 0 Success# numResponses: 2# numEntries: 15. 用ldapadd向其中加入条目
信息的录入有三种方法,一种是手工录入,一种是.ldif文件格式录入,一种是脚本自动录入。我们先从最基础的手工 录入方式开始介绍,了解录入信息的格式。明白了手工录入的格式,其它两种方式都很容易明白。以下是手动录入信息的全过程
创立DN
[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:dc=mydomain,dc=comobjectclass:topobjectclass:dcobjectobjectclass:organizationdc:mydomaino:2012.Incadding new entry "dc=mydomain,dc=com"[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:ou=zongbu,dc=mydomain,dc=comou: zongbuobjectclass: organizationalUnit adding new entry "ou=zongbu,dc=mydomain,dc=com"[root@mm openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:ou=kuli,dc=mydomain,dc=comou:kuliobjectclass: organizationalUnitadding new entry "ou=kuli,dc=mydomain,dc=com"[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:ou=mm,dc=mydomain,dc=comou:mmobjectclass: organizationalUnitadding new entry "ou=mm,dc=mydomain,dc=com"[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:cn=lizhiling,ou=mm,dc=mydomain,dc=comcn:lizhilingsn:linobjectclass:inetorgpersonadding new entry "cn=lizhiling,ou=mm,dc=mydomain,dc=com"[root@testlfy openldap]# ldapadd -x -D "cn=Manager,dc=mydomain,dc=com" -W
Enter LDAP Password: dn:cn=angelababy,ou=mm,dc=mydomain,dc=comcn:angelababysn:angelobjectclass:inetorgpersonadding new entry "cn=angelababy,ou=mm,dc=mydomain,dc=com"6. 使用ldapsearch命令查询“dc=mydomain, dc=com”下的所有条目
vigar@vigar-laptop:/usr/local/bin$ sudo ldapsearch -x -b "dc=mydomain,dc=com"
# extended LDIF
## LDAPv3# base <dc=mydomain,dc=com> with scope subtree# filter: (objectclass=*)# requesting: ALL## mydomain.com
dn: dc=mydomain,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationdc: mydomaino: 2012.Inc# zongbu, mydomain.com
dn: ou=zongbu,dc=mydomain,dc=comou: zongbuobjectClass: organizationalUnit# kuli, mydomain.com
dn: ou=kuli,dc=mydomain,dc=comou: kuliobjectClass: organizationalUnit# mm, mydomain.com
dn: ou=mm,dc=mydomain,dc=comou: mmobjectClass: organizationalUnit# lizhiling, mm, mydomain.com
dn: cn=lizhiling,ou=mm,dc=mydomain,dc=comcn: lizhilingsn: linobjectClass: inetOrgPerson# angelababy, mm, mydomain.com
dn: cn=angelababy,ou=mm,dc=mydomain,dc=comcn: angelababysn: angelobjectClass: inetOrgPerson# search result
search: 2result: 0 Success# numResponses: 7
# numEntries: 6
7.在其它client端上用ldapBrowser连接, 先配置一个cfg文件,文件内容, 其中标红处要与ldap server上的slapd.conf中的内容对应
################################## LDAP Browser v2.8 config file ##################################basedn=dc=mydomain,dc=comport=389managerlogin=yesmanagereferrals=nolimit=0derefaliases=alwayssslport=636version=3timeout=0password=bugaosunihost=10.0.2.8managerdn=cn=Manager,dc=mydomain,dc=com
连接效果如下
参考资料
1.
2. iPlanet Directory Server示例
bash-3.2$ ldapsearch -h 10.0.32.13 -p 389 -D "uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot" -w admin -b "ou=agent_section,ou=333,ou=885,ou=10.0.2.3,ou=invoker_RT,ou=ini,ou=2b,o=NetscapeRoot" -s sub "objectclass=*"ou=agent_section,ou=333,ou=885, ou=10.0.2.3, ou=invoker_RT, ou=ini, ou=2b, o=NetscapeRootou=agent_sectionobjectClass=top$daemon_cmd=perl mm.pl