一、安装步骤
1:配置yum源
   挂着盘镜像时用到: 这里不做解释;(yum clean all && yum makecache)
2:安装OpenLDAP组件
                1)安装OpenLDAP组件命令如下:
[root@gitea ~]# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -y
compat-openldap-2.3.43-2.el6.x86_64
openldap-clients-2.4.40-16.el6.x86_64
openldap-2.4.40-16.el6.x86_64
openldap-devel-2.4.40-16.el6.x86_64
openldap-servers-2.4.40-16.el6.x86_64
   2)初始化OpenLDAP配置
[root@gitea ~]# cp /usr/share/openldap-servers/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG
[root@gitea ~]# cp /usr/share/openldap-servers/slapd.conf.obsolete  /etc/openldap/slapd.conf
[root@gitea ~]# chown -R ldap.ldap /etc/openldap/
[root@gitea ~]# chown -R ldap.ldap /var/lib/ldap
   3)启动LDAP进程slapd(调试程序)
[root@gitea ~]# service slapd restart
Stopping slapd:                                            [FAILED]
Starting slapd:                                            [  OK  ]
  4) 查看OpenLDAP默认监督
[root@gitea ~]# netstat -ntplu|grep -i :389       
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      28137/slapd        
tcp        0      0 :::389                      :::*                        LISTEN      28137/slapd
 5) 查看OpenLDAP进程状态
[root@gitea ~]# ps aux|grep slapd |grep -v grep
ldap     28137  0.0  1.5 536828 62924 ?        Ssl  11:33   0:00 /usr/sbin/slapd -h  ldap:/// ldapi:/// -u ldap


二、OpenLDAP配置

    1.配置文件关键路径:
   /etc/openldap/slapd.conf(OpenLDAP住配置文件、记录根域名名称、管理员名称、密码、日志、权限等相关信息)
   /var/lib/ldap/* (OpenLDAP  数据文件存储位置,可以根据需求进行调整)
   /usr/share/openldap-servers/slapd.conf.obsolete (模板配置文件)
   /usr/share/openldap-servers/DB_CONFIG.example (模板数据配置文件schema路径)
  /etc/openldap/schema/* (OpenLDAP schema规范存放位置)

OpenLDAP监听的端口有以下两个.
  默认监听端口:389 (明文数据传输)
  加密监听端口:636 (密文数据传输)
  2.slapd.conf配置文件
   OpendLDAP 主配置文件为/etc/openldap/slapd.conf.此文件默认不存在,需要负责安装OpenLDAP软件包安装所产生的配置文件模板并重命名为slapd.conf文件;
  1)获取openldap-servers软件包生产的文件
[root@gitea ~]# rpm -ql openldap-servers |egrep -i '(slapd\.conf\.*|DB_CONFIG.example)'
/etc/openldap/slapd.conf
/etc/openldap/slapd.conf.bak
/usr/share/man/man5/slapd.conf.5.gz
/usr/share/openldap-servers/DB_CONFIG.example
/usr/share/openldap-servers/slapd.conf.obsolete
2)软件包所产生的文件的用途
/usr/share/openldap-servers/slapd.conf.obsolete 为OpenLDAP配置文件模板
/usr/share/openldap-servers/DB_CONFIG.example 为OpenLDAP数据库配置文件模板
要配置OpendLDAP服务端,需要将如上配置文件模板负责到/etc/openldap/目录下并命名为slapd.conf,同时将数据库配置文件模板复制到/var/lib/ldap/目录中并将其命名为DB_CONFIG,且/var/lib/ldap/目录权限所有主(owner),所属组(group)必须为ladp用户可读写,否则会在加载slapd进程时显示权限警告
3) slapd.conf配置文件参数
/etc/openldap/slapd.conf 为OpenLDAP主配置文件,以#号开头的为注释说明
include         /etc/openldap/schema/corba.schema
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/duaconf.schema
include         /etc/openldap/schema/dyngroup.schema

OpenLDAP服务允许连接的客户端版本。
allow  bind_v2
OpenLDAP进程启动时,pid文件存放路径
pidfile /var/run/openldap/slapd.pid
OpenLDAP 参数文件存放的路径
argsfile /var/run/openldap/slapd.args
OpenLDAP 指定需要加载额外的模块
moduleload ppolicy.la
OpenLDAP模块文件存放的路径
modulepath  /usr/lib/openldap               //32bit的模块文件路径
modulepath  /usr/lib64/openldap           //64bit的模块文件路径

指定OpenLDAP数据库类型
OpendLDAP服务后端存储数据库引擎支持的数据库类型有mysql  db2 oracle等关系数据库,默认为bdb数据库。
database  dbd

指定OpenLDAP服务器域名(DN)
指定要搜索或查询OpenLDAP目录树的后缀名称等同于AD域名
suffix     "dc=example,dc=com"
指定OpenLDAP服务器管理信息
rootdn  "cn=Manager,dc=example,dc=com"
指定OpenLDAP服务管理员密码
root  gdy@123     #文明添加,不建议使用
rootpw         {crypt}ijFYNcSNctBYg

指定OpenLDAP数据库文件的存放目录
directory    /var/lib/ldap
创建OpendLDAP索引
index   objectClass                                    eq,pres
index   ou,cn,mail,surname,givename        eq,pres,sub
index   uidNumber,gidNumber,loginShell   eq,pres


三、修改OpenLDAP配置
1:备份默认数据库文件
[root@gitea openldap]# \cp /etc/openldap/slapd.d   /tmp/slapd.d.bak/ -fr
2: 查看OpendLDAP是否开启SSL加密功能
[root@gitea openldap]# cat /etc/sysconfig/ldap |grep -v -E "^$|^#"
SLAPD_LDAP=yes
SLAPD_LDAPI=yes
SLAPD_LDAPS=no
此处未开启SSL,如果开启SSL功能,可以再使用SLAPD_LDAPS=yes,或者使用SLAPD_URLS进行指导即可
例如:SLAPD_URLS=ldaps://ldap.deppon.com
3: OpenLDAP主配置文件配置
  1) schema文件的引入
include                /etc/openldap/schema/samba.schema

2)  创建OpenLDAP的管理员密码
通过slappasswd命令创建密码串,然后将密码串负责到rootpw即可

4: slaptest 检测、生成数据库
 [root@gitea openldap]# slaptest -f /etc/openldap/slapd.conf
如果配置文件存在语法错误,通过slaptest -u 命令有相应的提示,根据提示对slapd.conf配置文件进行调整即可;
通过slapd.conf配置文件生成数据库
[root@gitea openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
5:OpenLDAP日志配置
1)查看日志级别
slapd -d ?
2)  OpenLDAP服务日志设置
通过修改rsyslog配置文件, 在文件中添加:local4*   /var/log/slapd.log  
[root@gitea openldap]# touch /var/log/slapd.log
[root@gitea openldap]# chown ldap.ldap /var/log/slapd.log
[root@gitea openldap]# chmod 755 /var/log/slapd
root@gitea openldap]# chown ldap:ldap /var/log/slapd/
 
修改日志文件,使其加载OpenLDAP参数
[root@gitea openldap]# sed -i "/local4.*/d"  /etc/rsyslog.conf
[root@gitea openldap]# cat >> /etc/rsyslog.conf  << EOF
> local4.*                  /var/log/slapd/slapd.log
> EOF
[root@gitea openldap]# cat /etc/openldap/slapd.conf  |grep -i loglevel

重新加载rsyslog使其配置生效
[root@gitea openldap]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

6:通过cn=config配置OpenLDAP日志
1)查看数据库配合文件日志级别信息
[root@gitea slapd.d]# cat cn\=config.ldif  |grep olcLogLevel
olcLogLevel: 0

四、启动slapd服务
service slapd restart  

五、yum安装migrationtools
1)yum install migrationtools -y
vim  /usr/share/migrationtools/migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "ouldap.com";  
 # Default base  
$DEFAULT_BASE = "dc=ouldap,dc=com";  
2)生成base.ldif
/usr/share/migrationtools/migrate_base.pl >base.ldif

3)添加base.ldif到ldap
ldapadd -x -D "cn=Manager,dc=ouldap,dc=com" -W -f ./base.ldif  
4)检查ldapadd是否成功
ldapsearch -x -D "cn=Manager,dc=ouldap,dc=com" -b "ou=Aliases,dc=ouldap,dc=com"  -W  'uid=zhijie'

五、yum安装httpd,php及PhpLdapAdmin
1)yum install httpd phpldapadmin -y
    yum install   php php-mbstring php-pear
2)配置/etc/httpd/conf.d/phpldapadmin.conf允许从远程访问

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs  
Alias /ldapadmin /usr/share/phpldapadmin/htdocs  
 
<Directory /usr/share/phpldapadmin/htdocs>  
  Order Deny,Allow  
  Allow from all  
</Directory></span>

3)修改/etc/phpldapadmin/config.php

$servers->setValue('login','attr','dn');  
// $servers->setValue('login','attr','uid');

4)httpd.conf配置 使Apache支持php开发环境

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

5)在DirectoryIndex 后面添加PHP类型的页面
 DirectoryIndex index.php index.html index.html.var
6)虚拟主机配置
vim  /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
    ServerAdmin myldap.ouldap.com
    DocumentRoot /usr/share/phpldapadmin/htdocs
    ServerName myldap.ouldap.com
</VirtualHost>
service httpd status  


问题:
        1:如果出现php程序无法调用OpenLDAP相关的模块,造成所安装的PHP程序错误,不支持连接OpenLDAP接口
  安装yum install  php-ldap  重新apache