当前位置: 代码迷 >> PHP >> LDAP-Series-一-Chapter-3 - PHP-LDAP
  详细解决方案

LDAP-Series-一-Chapter-3 - PHP-LDAP

热度:589   发布时间:2016-04-29 00:18:11.0
LDAP-Series-1-Chapter-3 - PHP-LDAP

If you want to use PHP with ldap. You have to add the extension lib.(ldap.so)

Go to the install file of PHP.

$ cd /opt/php-5.4.5/ext/ldap/$ /usr/local/bin/phpize$ ./configure --with-php-config=/usr/local/bin/php-config --with-ldap=/usr/local/openldap$ make$ make install$ cd /usr/local/lib$ vi php.ini (extension-dir=/usr/local/lib extension=php_ldap.so)$ cp /usr/local/lib/php/ext/..../ldap.so /usr/local/lib/php_ldap.so
You can change the path as you like.

$ php -v
Check if any error exist. (Until now, my work place`s php cannot load ldap.so)

PHP Test file.

<?phpclass m_ldap{        private $ldapHost = "127.0.0.1";        private $ldapPort = 389;        private $ds;        function m_ldap_con(){                $this->ds = ldap_connect($this->ldapHost,$this->ldapPort) or die("Could not connect to $this->ldapHost");                return true;        }        function m_ldap_bind($dn,$psw){                ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3);                if($this->ds){                        $r = ldap_bind($this->ds,$dn,$psw) or die("Could not bind to $dn");                        if($r){                                return true;                        }else{                                return false;                        }                }else{                        return false;                }        }        function m_ldap_add($dn,$info){                $r=ldap_add($this->ds,$dn,$info);                if($r){                        return true;                }else{                        return false;                }        }        function m_ldap_modify($dn,$info){                $r=ldap_modify($this->ds,$dn,$info);                if($r){                        return true;                }else{                        return false;                }        }        function m_ldap_search($dn,$filter){                $ldapSearch = ldap_search($this->ds,$dn,$filter);                $ldapInfo = ldap_get_entries($this->ds,$ldapSearch);                return $ldapInfo;        }}?>
ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3); //Make the ds to use PROTOCOL VERSION 3, Otherwise, there will be an error about PROTOCOL.

<?php        require_once("m_ldap.php");        $mdap=new m_ldap();        $mdap->m_ldap_con();        $dn = "cn=root,ou=SystemAdmin,dc=xxx,dc=org";        $psw= "xxxxxx";        $mdap->m_ldap_bind($dn,$psw) or die("cannot bind");                $sdn="ou=people,ou=iWeb,dc=weiwejia,dc=org";        $filter="(uid=*)";        $res=$mdap->m_ldap_search($sdn,$filter);        foreach( $res[0]["cn"] as $key=>$val){                print $key."\n";                print $val."\n";        }?>
If everything has been ok, it will works now. (Need ACL support, introduce next chapter.)




  相关解决方案