LDAP, kein Contact zu localhost

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • LDAP, kein Contact zu localhost

    Hallo alle zusammen!

    Ich versuche seit gestern Nachmittag über PHP auf einen lokalen LDAP-Server zuzugreifen, bisher leider erfolglos.

    Dazu habe ich lokal einen ApacheDS installiert. Dazu noch Apache Directory Studio als Directory Browser.
    Im Apache Directory Studio habe ich eine Verbindung zum ApacheDS eingerichtet.

    Server: localhost
    Port: 10389
    Bind DN: ou=system,uid=admin
    Passwort: secret

    Diese Verbindung klappt wunderbar. Ich kann auf das Directory zugreifen und es problemlos über den DS-Browser bedienen.

    Nun zum eigentlichen Problem:

    Des weiteren habe ich ein PHP-Script geschrieben welches mittels LDAP-Modul auf den ApacheDS zugreift.

    PHP-Code:
    $ldap_host "LDAP://localhost";
    $ldap_port "10389";
    $ldap_rdn "ou=system,uid=admin";
    $ldap_pwd "secret";

    $ldap_connect ldap_connect($ldap_host$ldap_port);
    $ldap_bind ldap_bind($ldap_connect$ldap_rdn$ldap_pwd); 
    Wenn ich dieses Script ausführe, dann gibt ldap_bind() die Warnung
    "can't contact server" zurück.
    Soweit ich das durch meine Recherchen mitbekommen habe, wird der tatsächliche Verbindungsaufbau erst beim Aufruf von ldap_bind() durchgeführt, was ich sehr schade finde, da man Anfangs nicht weiß ob der Fehler vom connect oder vom bind kommt.
    Wie dem auch sei, die Fehlermeldung sagt ja aus, dass kein Kontakt zum Server hergestellt werden kann.
    In anderen Threads und Manuals habe ich gesehen, dass andere Scripte die Protokollangabe in der Hostbezeichnung nicht machen.

    anstadt
    PHP-Code:
    $ldap_host "LDAP://localhost"
    PHP-Code:
    $ldap_host "localhost"
    Wenn ich das so ausführe habe ich immer noch keine Verbindung und bekomme ich die Fehlermeldung "Protocol error".
    Wird die Protokollangabe nun benötigt oder nicht?

    Da ich immer noch keinen Kontakt zu meinem lokalen ADS bekommen habe, habe ich das PHP-Manual studiert und gelesen, das die PHP DLL's ssleay32.dll und libeay32.dll auf Windowssystemen dem System PATH zugänglich sein müssen.

    http://de3.php.net/manual/en/ldap.installation.php

    Also hab ich diese in den system32-Ordner kopiert.
    Auch danach erhalte ich keine Verbindung zum Server, egal ob mit oder ohne Protokollangabe im Hostname.

    Das dritte was ich versucht habe war die Protokollversion mit ldap_set_option() zu setzten. Aber auch das hat nix genützt.

    Ich weiß wirklich nicht mehr was ich noch machen soll bzw. woran es liegen könnte warum ich keine Connect bekomme.
    Vielleicht hat jemand von euch eine Idee?
    Kann natürlich auch sein, dass ich völlig falsch an die Sache rangehe oder dass ich was übersehen habe, dann klärt mich bitte auf!

    Jedenfalls bin ich für jede Hilfe dankbar!!!


    OS: WindowsXP SP2
    WS: XAMPP 1.5.1
    DS: ApacheDS 1.0
    Zuletzt geändert von standardX; 18.04.2008, 12:41.

  • #2
    Versuch es mal so (Auszug aus einer Klasse)
    Eine Verbindung war mir auch erst möglich, nachdem ich auf Version 3 umgestellt hatte.

    PHP-Code:
    $strHost="localhost"// evtl auch localhost:10389
    $strPath="ou=system,uid=admin";
    $strPassword="secret";

    function 
    connect($strHost,$strPath,$strPassword)
    {
        
    $this->_resLDAP=ldap_connect($strHost); 
        
    ldap_set_option($this->_resLDAPLDAP_OPT_PROTOCOL_VERSION3);
        if(
    ldap_bind($this->_resLDAP$strPath$strPassword))
        {
            return 
    $this->_resLDAP;
        }
        else
        {
            
    $this->_error(ldap_error($this->_resLDAP),ldap_errno($this->_resLDAP));
            return 
    FALSE;
        }
    }

    // noch die fehlermethode, falls sie interessiert
    function _error($strError,$intError)
    {
        
    $this->strError="";
        
    $this->intError=0;
        
    $this->strError=$strError;
        
    $this->intError=$intError;

    Poscht
    Zuletzt geändert von Poscht; 18.04.2008, 12:51.

    Kommentar


    • #3
      WHOOOOHOOOOO

      jo, jetz funzts wie Hölle!

      Als ich zuvor in meinem Script die Version beim Zugriff geändert habe, muss wohl just in diesem Moment ein Fehler mit der Hostadresse passiert sein, woraufhin ich annahm, dass es nicht an der Protokollversion liegt.
      Manchmal braucht man doch einen kleinen Klaps auf den Hinterkopf.

      Du hast einen traurigen Mann sehr glücklich gemacht!


      WHOOOOHOOOO

      Kommentar

      Lädt...
      X