LINUX下安装openldap,并用phpldapadmin进行管理 BDB:Berkeley DB,openldap需要使用的数据库(貌似还有别的数据库可用,但这次我要用到它) phpldapadmin:openldap的网页管理软件,需要php支持,所以会有apache+php一说。 linux: CentOS5.4 ip:192.168.1.6 bdb与openldap会有兼容性问题,2.3和2.4的openldap与4.8的bdb不兼容,后来发现2.3的openldap需要的bdb版本应该为4.4-4.6之间,所以这里就选择了4.5的bdb。(装64位系统的时候,4.5的却不兼容,让换成4.3.29的,我晕死。。。) 1.安装apache ./configure --prefix=/usr/local/apache2 --enable-so --enalbe-rewrite //安装到指定目录,so开启动态模块支持,rewrite开启地址重写。 make;make install 2.安装php ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php5 --with-ldap --with-gettext //指定安装目录,跟apache融合,指定配置文件位置,启用ldap支持(必须的),启用gettext支持(必须要启用的支持) make;make install cp php.ini-dist /usr/local/php5/php.ini //把配置文件拷贝过去,编辑它在适当位置添加include_path = /usr/local/php5/lib/php 3.修改apache让其支持php vi /usr/local/apache2/conf/httpd.conf AddType application/x-httpd-php .php DirectoryIndex index.html index.php //在DirectoryIndex后面加个index.php,类似前面这样子 保存退出。 4.安装bdb tar zcvf db-4.5.20.tar.gz cd db-4.5.20/build_unix //bdb需要在这个目录里编译(不同于其它大多数linux程序,算一特异者吧) ../dist/configure --prefix=/usr/local/db //bdb的配置文件在dist目录里(这种编译安装在linux里没有普遍性,所以不必因此困扰,大多数linux程序还都是直接在解包出来的根目录里直接编译安装就行了的) make make install //make;make install中间有分号是因为两条命令写在同一行里必须要用;分隔,而此处则是把两条命令分开执行,所以;也就不用了,其实结果是一样的。 vi /etc/ld.so.conf 手工加入以下内容: 5.安装openldap vi /etc/profile 在末尾手工加入以下内容: LD_RUN_PATH=/usr/local/db/lib //这个可能不是必须的。 LD_LIBRARY_PATH=/usr/local/db/lib //必须的,少了安装会报错 export LD_RUN_PATH LD_LIBRARY_PATH //导出变量,也是必须的,要不变量没法生效 保存退出 source /etc/profile //让刚设置的变量立刻生效 env CPPFLAGS="-I /usr/local/db/include" LDFLAGS="-L /usr/local/db/lib" ./configure --prefix=/usr/local/openldap --enable-bdb //CPP和LD这两个环境变量应该可以跟刚才的LD_LIBRARY那个变量一样设置在profile文件里的,但是大家都是在这里设置,可能是因为这两个变量都是只在安装时用一次吧,所以我这里也就随大家写在命令里而不是写在profile里了,记得要启用bdb,要不我们的bdb就白装了。(装64位系统的时候又报错缺少ltdl.h,后来locate ltdl找到了它的位置,然后命令改成了env CPPFLAGS="-I /usr/local/db/include" LDFLAGS="-L /usr/local/db/lib" LDFLAGS="-L /usr/share/libtool/libltdl" ./configure --prefix=/usr/local/openldap --enable-bdb,就是多加了红色字体部分。真晕,同样的操作配置,32位能过,64位系统就过不了。。。)(试过多种方法64位系统总是提示缺少ltdl.h,最后实在耗不起那个时间了然后就直接yum install openldap-servers了事,此时却发现yum安装时安装了一个名为libtool-ltdl-1.5.22-7.el5_4的依赖包,难道就是因为缺少这个包导致的编译通不过?)(yum安装openldap主要是安装openldap、openldap-devel、openldap-servers、openldap-clients这四种包) make depend //解决依赖问题 6.修改openldap配置文件 vi /usr/local/openldap/etc/openldap/slapd.conf include /usr/local/openldap/etc/openldap/schema/core.schema //本行后面这些include行手工添加一下,这些schema都在openldap安装目录下的etc/openldap/schema下,可以进去该目录看下都有什么schema,把有的全都添加到这里,以后用起来也方便。 database bdb //本行后面这些行是可能需要修改的,bdb就是我们的Berkeley DB数据库了 保存退出 /usr/local/openldap/bin/ldappasswd //生成管理者密码,回车后输入两遍密码就可以了 /usr/local/openldap/libexec/slapd //启动openldap 7.安装phpldapadmin tar zxvf phpldapadmin-1.2.0.5.tgz mv phpldapadmin-1.2.0.5/* /usr/local/apache2/htdocs/ //解包,把得到的文件弄到apache的网页根目录htdocs里就算安装完事 8.修改phpldapadmin配置文件 cp /usr/local/apache2/htdocs/config/config.{php.example,php} //用配置文件模板拷贝一份配置文件出来 vi /usr/local/apache2/htdocs/config/config.php $servers->setValue('server','name','GASO LDAP Server'); //本行及后面这些行(读hang)为关键参数,可按实际情况修改,此处指定服务器的显示名称为GASO LDAP Server,该名称可随意设置
9.访问phpldapadmin管理openldap http://192.168.1.6/(安装openldap服务的系统的ip,不要连别人的名字都抄到答卷上了哦) 没意外的话就可以看到phpldapadmin的登录页面了(八成会有意外,第一次在所难免啊!) 10.关于ldap的一些理解 我们可以想象有一颗苹果树,树枝就是树干的延伸。
貌似可以这样理解:ou、cn(树干)长在dc(树根)上,ou、cn(苹果)长在ou、cn(树干树枝)上(非主流啊!哈哈!) 11.其它相关 ldapsearch -x -b '' -s base '(objectclass=*)' //检查openldap安装是否成功,结果类似如下 # extended LDIF ldapsearch -x -b 'dc=gaso,dc=com' '(objectclass=*)' //查看openldap数据库里所有数据 ldapadd -x -D "cn=root,dc=gaso,dc=com" -w gaso123 -f "gaso.ldif" //把文件gaso.ldif里面的记录通过管理者账号录入openldap的数据库里面。 |