当前位置: 首页 > Linux

Openldap安装

时间:2023-04-06 06:03:26 Linux

LightweightDirectoryAccessProtocol(英文:LightweightDirectoryAccessProtocol,缩写:LDAP)是一个开放的、中立的、行业标准的应用协议,通过IP协议为分布式信息提供访问控制和维护目录信息。OpenLDAP是轻量级目录访问协议(LDAP)的免费开源实现,根据其OpenLDAP许可发布,并已包含在许多流行的Linux发行版中。可以这样说:只要你能想象到市面上的工具软件,无一不支持LDAP协议。比如你的公司要安装一个项目管理工具,那么这个工具几乎肯定是支持LDAP协议的。如果您的公司要安装错误管理工具,该工具还必须支持LDAP协议。贵公司需要安装一套软件版本管理工具。它还必须支持LDAP协议。LDAP协议的优点是您公司的所有员工在所有这些工具中共享同一组用户名和密码。当一个新用户进来时,他可以自动访问所有系统,当他离开时,一键删除取消他对所有系统的访问权限,这就是LDAP。这几天,由于项目需要,经理让我研究openldap,写一个SDK,连接openldap,实现与openldap的数据交互。之前没有接触过openldap,所以想从安装开始,记录一下。话不多说,步骤如下:我用的是银河麒麟系统,内核是ubuntu。首先,用户必须转换为root权限。下面开始安装。1、安装openssl,在已经安装openssl和BerkeleyDB的前提下安装openldap。我们先安装openssl(虽然系统自带,但是最好不要卸载,重新安装一个,卸载后很多服务可能启动不了)下载地址:https://www.openssl.org/source/然后解压tar-zxvf+压缩包名进入文件cd文件名执行命令./configshared#注意./config会安装到/usr/local/sslmakemakeinstallconfiguration库文件搜索路径echo"/usr/local/ssl/lib">>/etc/ld.so.confldconfig-V这两句的作用是通知系统BerkeleyDB的动态链接库在/usr/local/berkeleydb/lib/目录中。配置/etc/ld.so.conf文件。ld.so.conf文件配置了需要读取通知缓存中动态函数库的目录。重新配置ld.so.conf后,在命令行执行ldconfig命令生效。软件默认安装在/usr/local/BerkeleyDB.4.2目录下。安装完成后,在/etc/ld.so.conf文件中添加/usr/local/BerkeleyDB.4.2/lib库路径,执行一次ldconfig,使配置文件生效。这样在编译openldap的时候就可以找到对应的库文件了。什么是ld.so.conf?它是系统动态链接库的配置文件。在这个文件中存放LINUX可以共享的动态链接库的目录名(系统目录/lib、/usr/lib除外),各个目录名之间用空格(空格、换行符等)或冒号或逗号。在一般的LINUX发行版中,这个文件包含一个共享目录/usr/X11R6/lib,这是Xwindow系统的动态链接库所在的目录。ldconfig是它的管理命令。具体操作方法请查看man手册。什么是ldconfig?它是一个程序,通常位于/sbin下,由root用户使用。具体的功能和用法可以在manldconfig中找到。简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache中使用。因此,当安装完一些库文件后(比如刚刚安装了glib),或者修改ld.so.conf增加了新的库路径,需要运行/sbin/ldconfig,这样所有的库文件都会缓存在ld中。so.cache,如果不做,即使库文件明明在/usr/lib下,也不会被使用。结果在编译过程中会报错,缺少xxx库。去查看,发现明明有...2.安装BerkeleyDB下载地址:http://www.oracle.com/technet...(注意根据openldap的README文件中的内容下载合适的版本:BDB和HDB后台需要OracleBerkeleyDB4.4-4.8,or5.0-5.1.强烈建议从Oracle应用给定版本的补丁.然后执行命令tar-zxvf+压缩包名cd文件名cdbuild_unix../dist/configure--prefix=/usr/local/berkeleydb--enable-cxx#--enable-cxx是编译C++库,这样可以编译BerkeleyDB数据库的PHP扩展php_db4makemakeinstallecho'/usr/local/berkeleydb/lib/'>>/etc/ld.so.confldconfig#添加后执行一次ldconfig,使配置文件生效,这样编译openldap时就可以找到对应的库文件.ldconfig-V3,安装openldap最后进入正题,下载地址:http://www.openldap.org/softw...然后执行命令tar-zxvf+压缩包名cd文件名envCPPFLAGS="-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路径,否则会提示BerkeleyDB配置数据库相关内容时版本不兼容,中断配置。如果没有--enable-ldbm选项,maketest时会提示找不到ldbm。为了减少错误,还是加上吧。接下来的几个参数是使用openldap的同步协议。在编译阶段必须强制启用以下编译选项。-enable-ldap选项用于支持ldap代理,用于同步时推送数据;--enable-accesslog选项用于记录用户操作,用于记录同步时服务器端数据修改;--enable-syncprov选项用于支持数据同步引擎。makedependmakemaketest#(在maketest阶段测试的时间比较长,好像有16条。你可以在那里等着,自己做其他的事情,不过要看成功与否。如果没有问题就可以安装)makeinstall配置库文件搜索路径echo"/usr/local/openldap/lib">>/etc/ld.so.confldconfig-V说说这里的坑吧。第一次安装这个东西。网上的资料要么对新人不太友好,要么就是过时的资料,本身就是错误的。简而言之,安装并不容易。让我详细谈谈。一个是我刚刚写的。之前安装的BerkeleyDB版本过高,导致安装openldap时提示BerkeleyDB不可用。后来安装合适的版本时,提示版本不匹配。google之后,在./configure之前加上LD_LIBRARY_PATH="/usr/local/berkeleydb/lib",终于可以执行下一步了,但是maketest的时候又测试失败了。原来是动态链接库有问题,没有设置正确,导致运行时找不到当时的库文件,于是查看环境变量。LD_LIBRARY_PATH中必须有系统和bdb环境库文件位置。可能是之前直接复制过来的,不看路径导致的错误。。。总之“惊喜”不断,不过最后还是安装成功了,先喘口气吧,后面还有更大的考验later...补充:linux源码安装三步从源码安装程序时,需要按照以下步骤操作:/configuremakemakeinstall它们的含义:这些是使用GNU的AUTOCONF和AUTOMAKE生成的程序的典型安装步骤。./configure用于检测你的安装平台的目标特性。比如它会检测你有没有CC或者GCC,它不需要CC或者GCC,它是一个shell脚本make用来编译,它从Makefile中读取指令,然后编译。makeinstall用于安装,它也会从Makefile中读取指令并安装到指定位置。