轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,经过IP协议提供访问控制和维护分布式信息的目录信息。
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。
能够这样讲:市面上只要你可以想像获得的全部工具软件,所有都支持LDAP协议。好比说你公司要安装一个项目管理工具,那么这个工具几乎必然支持LDAP协议,你公司要安装一个bug管理工具,这工具必然也支持LDAP协议,你公司要安装一套软件版本管理工具,这工具也必然支持LDAP协议。LDAP协议的好处就是你公司的全部员工在全部这些工具里共享同一套用户名和密码,来人的时候新增一个用户就能自动访问全部系统,走人的时候一键删除就取消了他对全部系统的访问权限,这就是LDAP。php
这几天因为项目须要,经理让我研究一下openldap,写一个链接openldap以及实现与openldap数据交互的SDK。以前历来没有接触过openldap,因此我想从安装作起,作一个记录,很少说了,下面是步骤:
我用的是银河麒麟系统,内核是ubuntu的,首先要将用户转为root权限,下面开始安装。html
安装openldap前提是已经安装好openssl和BerkeleyDB,咱们先来安装openssl(这个虽然系统自带,可是最好不要卸载,从新安装一个,卸载以后不少服务可能起不来)
下载地址:https://www.openssl.org/source/
以后解压linux
tar -zxvf +压缩包名
进入文件shell
cd 文件名
执行命令数据库
./config shared #注意这里是用./config 会安装到/usr/local/ssl make make install
配置库文件搜索路径ubuntu
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf ldconfig -V
这2句的做用就是通知系统Berkeley DB的动态连接库在/usr/local/berkeleydb/lib/目录。缓存
ld.so.conf文件配置了须要读入告诉缓存中的动态函数库所在目录 从新配置ld.so.conf后,在命令行执行ldconfig命令生效该软件默认是安装在/usr/local/BerkeleyDB.4.2目录下。安装完成后,要把/usr/local/BerkeleyDB.4.2/lib的库路径加到/etc/ld.so.conf文件内,添加完成后执行一次ldconfig,使配置文件生效。这样编译openldap时才能找到相应的库文件。oracle
它就是系统动态连接库的配置文件。此文件内,存放着可被LINUX共享的动态连接库所在目录的名字(系统目录/lib,/usr/lib除外),各个目录名间以空白字符(空格,换行等)或冒号或逗号分隔。通常的LINUX发行版中,此文件均含一个共享目录/usr/X11R6/lib,为X window窗口系统的动态连接库所在的目录。 ldconfig是它的管理命令,具体操做方法可查询man手册app
它是一个程序,一般它位于/sbin下,是root用户使用的东东。具体做用及用法能够man ldconfig查到
简单的说,它的做用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用
所以当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增长新的库路径后,须要运行一下/sbin/ldconfig
使全部的库文件都被缓存到ld.so.cache中,若是没作,即便库文件明明就在/usr/lib下的,也是不会被使用的,结果编译过程当中抱错,缺乏xxx库,去查看发现明明就在那放着......分布式
下载地址: http://www.oracle.com/technet...(注意要根据openldap的README文件中的内容下载合适的版本下面是一段原文,在下载时必定要注意!)
SLAPD: BDB and HDB backends require Oracle Berkeley DB 4.4 - 4.8, or 5.0 - 5.1. It is highly recommended to apply the patches from Oracle for a given release.
以后执行命令
tar -zxvf +压缩包名 cd 文件名 cd build_unix ../dist/configure --prefix=/usr/local/berkeleydb --enable-cxx #其中–enable-cxx就是编译C++库,这样才能编译Berkeley DB数据库的PHP扩展php_db4。 make make install echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf ldconfig #添加完成后执行一次ldconfig,使配置文件生效。这样编译openldap时才能找到相应的库文件。 ldconfig -V
终于进入正题,下载地址:http://www.openldap.org/softw...
以后执行命令
tar -zxvf +压缩包名 cd 文件名 env CPPFLAGS="-I/usr/local/berkeleydb/include" LDFLAGS="-L/usr/local/berkeleydb/lib" LD_LIBRARY_PATH="/usr/local/berkeleydb/lib" ./configure --prefix=/usr/local/openldap --enable-ldbm --enable-overlays --enable-ldap --enable-accesslog --enable-syncprov
注意以上配置语句,要设置资料库的include和lib路径,不然在配置到资料库相关内容时会提示Berkeley DB版本不兼容,并中断配置。若是没有--enable-ldbm选项,在make test时会提示ldbm找不到。为了减小出错,仍是加上为好。后面的几个参数是为了使用openldap的同步协议,必须在编译阶段强制开启以下的编译选项,其中-enable-ldap 选项用于支持ldap代理,在同步中用来推送数据;--enable-accesslog 选项用于记录用户操做,在同步中用于记录服务端的数据修改;--enable-syncprov 选项用于支持数据同步引擎。
make depend make make test # (在make test阶段要花费较长时间进行测试,好像有16项吧。能够放在那里等,本身作其余事情,不过成与不成就看这下的了,若是没问题就可安装了) make install
配置库文件搜索路径
echo "/usr/local/openldap/lib" >> /etc/ld.so.conf ldconfig -V
说说这里的坑吧,第一次装这个东西,网上的资料要么对新人不太友好,要么就是过期的资料,还有就是自己就是错误的,总之安装挺不容易的,我具体说说吧,一个就是刚才我写到的,以前装的BerkeleyDB版本过高,致使在装openldap时提示BerkeleyDB不可用,后来装了适合的版本,又提示版本不匹配,google后在./configure以前添加
LD_LIBRARY_PATH="/usr/local/berkeleydb/lib"
好不容易能够执行下一步了,在make test 时又测试失败,原来动态链接库出问题了,没有设置正确,致使运行时的库文件没能找到,因此要检查环境变量.LD_LIBRARY_PATH中必定要有系统的以及bdb的环境库文件位置.以前可能直接复制的,没有看路径致使的错误......总之“惊喜”不断,不过最后仍是安装成功了,先喘口气,后面还有更大的考验......
从源码安装程序时,须要依此执行如下步骤:
./configure make make install 他们的含义:
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure是用来检测你的安装平台的目标特征的。好比它会检测你是否是有CC或GCC,并非须要CC或GCC,它是个shell脚本 make是用来编译的,它从Makefile中读取指令,而后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。