所需环境:
rhel5.4
Apache-2.2.14
php-5.2.9 //php编译时选项要为
./configure --prefix=/usr/local/php5/ --with-config-file-path=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs -with-bz2 --with-curl --with-curlwrappers --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --enable-zend-multibyte - --with-ldap --enable-xml --enable-dom
1:编译并安装DBD,DBD是LDAP数据源格式的定义,这是一种嵌入式的数据库实现,被典型应用于速度快,空间小,性能优的各种应用
从下面的网站上下载db-4.8.26.tar.gz,openldap需要使用DBD作为后台数据访问方式,系统中若不存在DBD开发头文件,在编译openldap的时候会出现configure: error: BDB/HDB: BerkeleyDB not available错误
[root@server1 ~]# cd /usr/local/src/tarbag/
[root@server1 tarbag]# tar -zxvf db-4.8.26.tar.gz -C ../software/
[root@server1 tarbag]# cd ../software/db-4.8.26/
[root@server1 db-4.8.26]# cd build_unix/
[root@server1 build_unix]# ../dist/configure --prefix=/usr/local/BerkeleyBD.4.8
[root@server1 build_unix]# make && make install
[root@server1 build_unix]# ls /usr/local/BerkeleyBD.4.8/
bin docs include lib
以下几步操作特别重要,若操作不对,则可能出现configure: error: Berkeley DB version mismatch这样的错误
[root@server1 build_unix]# cp /usr/local/BerkeleyBD.4.8/lib/* /usr/local/lib
[root@server1 build_unix]# cp /usr/local/BerkeleyBD.4.8/include/* /usr/local/include/
[root@server1 build_unix]# cp /usr/local/BerkeleyBD.4.8/lib/* /usr/lib
[root@server1 build_unix]# cp /usr/local/BerkeleyBD.4.8/include/* /usr/include/
[root@server1 build_unix]# vim /etc/profile
export LD_LIBRARY_PATH="/usr/local/ssl/lib:/usr/local/BerkeleyDB/lib"
2:下载并编译安装openldap
[root@server1 ~]# cd /usr/local/src/tarbag/
[root@server1 tarbag]# tar -zxvf openldap-2.4.21.tgz -C ../software/
[root@server1 tarbag]# cd ../software/openldap-2.4.21/
[root@server1 openldap-2.4.21]# ./configure --prefix=/usr/local/openldap --with-tls ---enable-modules --enable-syslog //通过tls/ssl安全层加强openldap的数据传递安全;允许用户储存在LDAP目录中的密码以经过crypt加密后的形式存放;开启线程支持
编译ldap的时候出现如下错误
checking ltdl.h usability... no
checking ltdl.h presence... no
checking for ltdl.h... no
configure: error: could not locate libtool ltdl.h
需要安装:
rpm -ivh libtool-ltdl-1.5.22-6.1.i386.rpm
rpm -ivh libtool-ltdl-devel-1.5.22-6.1.i386.rpm
下载地址:
[root@server1 openldap-2.4.21]# make depend
[root@server1 openldap-2.4.21]# make
[root@server1 openldap-2.4.21]# make install
[root@server1 openldap-2.4.21]# ls /usr/local/openldap/
bin etc include lib libexec sbin share var
3:试启动与关闭服务
[root@server1 ~]# /usr/local/openldap/libexec/slapd -d 256 &
[root@server1 ~]# netstat -ntpl |grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 9125/slapd
tcp 0 0 :::389 :::* LISTEN 9125/slapd
添加根目录
[root@server1 openldap-data]# cat sss.ldif
dn: dc=test,dc=com
dc: test
objectclass: top
objectclass: domain
[root@server1 openldap-data]# ldapadd -x -D "cn=Manager,dc=test,dc=com" -W -f sss.ldif
Enter LDAP Password:
adding new entry "dc=test,dc=com"
安装phpldapadmin
[root@server1 tarbag]#tar zxvf phpldapadmin-1.2.0.5.tgz -C ../software
[root@server1 tarbag]# cd ../software
[root@server1 software]#mv phpldapadmin-1.2.0.5 phpldapadmin
[root@server1 software]#mv phpldapadmin /usr/local/apache2/htdocs/ //将phpldapadmin移到apache目录下
[root@server1 phpldapadmin]# pwd
/usr/local/apache2/htdocs/phpldapadmin
[root@server1 ]# cd /u