Home >Backend Development >PHP Tutorial > LDAP-Series-一-Chapter-3 - PHP-LDAP

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

WBOY
WBOYOriginal
2016-06-13 12:33:41967browse

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 (<strong>extension-dir=/usr/local/lib extension=php_ldap.so</strong>)
$ 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.

<?php class 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.)




Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn