LDAP mit XAMPP - wie aktivieren?

Alles, was PHP betrifft, kann hier besprochen werden.

LDAP mit XAMPP - wie aktivieren?

Postby RickDeckard » 12. October 2005 05:53

Hallo,

ich habe ein großes Problem.

Wie kann ich bei XAMPP unter Linux die LDAP Funktionen freischalten? Das ldap_connect() funktioniert, das ldap_bind() aber schon nicht mehr. Unter Windows war es kein Problem (php.ini) aber unter Linux finde ich den "Schalter" einfach nicht.
Das Programm, dass ich lokal betreiben möchte, geht leider nur unter Linux ...

Vielen Dank schon mal im Vorraus
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 12. October 2005 12:11

Wie kann ich bei XAMPP unter Linux die LDAP Funktionen freischalten? Das ldap_connect() funktioniert,...

Wenn die Funktion ldap_connect() vorhanden ist, sind auch die LDAP Funktionen "freischaltet". --> Ohne LDAP-Extension gibt es keine der LDAP-Funktionen.

... das ldap_bind() aber schon nicht mehr.

Und da es im Umkehrschluss also alle LDAP-Funktionen gibt, gibt es auch ldap_bind().

Um zu wissen wo dein Problem mit dieser Funktion jetzt it, müsste man den Code und die Fehlermeldeung kennen die ausgegeben wird.

Unter Windows war es kein Problem (php.ini) aber unter Linux finde ich den "Schalter" einfach nicht.

Also braucht man keinen Schalter in der "php.ini" umlegen.

BTW: welchen Schalter meinst du denn? Wenn du etwas anderes meinst als eben die Extension zu laden, dann kannst du das ja unter Linux auch. (Laden brauchst die hier nicht, da statisch einkompiliert)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 12. October 2005 15:53

Hallo Wiedemann,

Hier der Quellcode, ich habe mal dieses Beispiel von php.net genommen, um mein Problem besser darzustellen:

Code: Select all
<?php

$myldap_server = "***";
$basis_dn = "***";

$ldap_con = ldap_connect($myldap_server);

if ($ldap_con)
{

   $ldapbind = ldap_bind($ldap_con);
                             
   if ($ldapbind)
       {print "Congratulations! $username is authenticated.";}
   else
       {print "Nice try, kid. Better luck next time!";}
}

?>


Die Fehlermeldung:

Warning: ldap_bind(): Unable to bind to server: Unknown error in /opt/lampp/htdocs/ldap.php on line 11
Nice try, kid. Better luck next time!


Wie man sieht, gibt es keine Fehlermeldung beim beim connect, erst beim bind. Mit den selben Einstellungen (server, base => ldap_con) funktioniert es aber z.B. unter Windows, oder dem nicht lokalen Server.

Unter Windows, musste ich in der php.ini nur:

Code: Select all
extension=php_ldap.dll


freigeben.


btw Wenn ich in die phpinfo() schaue, sehe ich folgende Ausgabe:

ldap
LDAP Support enabled
RCS Version $Id: ldap.c,v 1.130.2.11 2005/01/19 00:28:49 sniper Exp $
Total Links 0/unlimited
API Version 3001
Vendor Name OpenLDAP
Vendor Version 20213

und im configure demand:

'--with-ldap=/opt/lampp'

Ich hoffe, ich habe alle Infos erwischt.

Echt ich weiß einfach nicht wo bei mir der Fehler liegt.

Viele Grüße und Dank im Vorraus.

Bert
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 12. October 2005 16:03

Hier der Quellcode, ich habe mal dieses Beispiel von php.net genommen, um mein Problem besser darzustellen:

Also das Beispiel bei "php.net" sieht aber anders aus. Insbesondere das dort mehr, vor allem auch die wichtigen, Parameter benutzt werden.

Dein Script würde ja voraussetzen, dass der LDAP-Server eine anonyme Anmeldung zulallen würde. Tut er das?

Ansonsten tun die Funktionen und machen was sie sollen. Um zu wissen was den Server stört, gibt es ja auch noch ldap_error().

btw Wenn ich in die phpinfo() schaue, sehe ich folgende Ausgabe:

Womit du dann gesehen hast, dass du bereits, und wie schon erklärt, vollen LDAP-Support hast...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 12. October 2005 16:16

Da der Fehler beim bind auftritt, ist ja meine Frage, wo der Fehler liegt.
Port ist übrigens auch 389, => Standard halt.

Ich habe das Beispiel deher vereinfacht, um nur darauf hinzudeuten.

Der Server unterstützt das annonymes anmelden, sonst würden die Beispiele unter Windows(local) und Linux (nicht lokal) nicht funktionieren. Nur bei meiner lokalen XAMPP geht es halt nicht. Übrigens auf zwei verschiedenen Linuxrechnern.
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 12. October 2005 16:56

Da der Fehler beim bind auftritt, ist ja meine Frage, wo der Fehler liegt.

Wie schon geschrieben. Du lässt dir ja keine LDAP Fehlermeldungen anzeigen...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 13. October 2005 05:49

Kannst Du mir sagen, wie ich das genau mache?

Danke
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby RickDeckard » 13. October 2005 10:28

So,

habe es mal mit der Fehlermeldung probiert:

Code: Select all
<?php
$myldap_server = "***";
$basis_dn = "***";

$ldap_con = ldap_connect("$myldap_server");
echo  "LDAP Error ldap_con ".ldap_error ($ldap_con). "<br><br>";

if ($ldap_con)
{

   $ldapbind = ldap_bind($ldap_con);
   echo  "LDAP Error ldap_bind ".ldap_error ($ldapbind). "<br><br>";

   if ($ldapbind)
       {print "Congratulations! is authenticated.";}
   else
       {print "Nice try, kid. Better luck next time!";}
}

if ($ldap_con)
{
    $filter = "(uid=".$select_wert.")";
    $read = ldap_search($ldap_con, $basis_dn, $filter);
    echo  "LDAP Error ldap_search ".ldap_error ($read). "<br><br>";
}
?>


Hier die Ausgabe:

LDAP Error ldap_con Success


Warning: ldap_bind(): Unable to bind to server: Unknown error in /opt/lampp/htdocs/ldap.php on line 11

Warning: ldap_error(): supplied argument is not a valid ldap link resource in /opt/lampp/htdocs/ldap.php on line 12
LDAP Error ldap_bind

Nice try, kid. Better luck next time!
Warning: ldap_search(): Search: Unknown error in /opt/lampp/htdocs/ldap.php on line 23

Warning: ldap_error(): supplied argument is not a valid ldap link resource in /opt/lampp/htdocs/ldap.php on line 24
LDAP Error ldap_search


Also, klappt das Verbinden, der Rest ... (?)
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 13. October 2005 12:08

Warning: ldap_error(): supplied argument is not a valid ldap link resource in /opt/lampp/htdocs/ldap.php on line 12
LDAP Error ldap_bind

Wie du siehst, funktioniert ldab_error() bei dir nur das erste Mal. Alle anderen Meldungen sagen nur das ldap_error() selbst nicht tut. Den Grund liest du hier in der Fehlermeldung.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 13. October 2005 12:26

Kurz und gut - man kann es nicht sagen, warum es unter Linux nicht funktioniert, obwohl das connect funktioniert?
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 13. October 2005 12:32

man kann es nicht sagen, warum es unter Linux nicht funktioniert, obwohl das connect funktioniert?

Doch, könnte man wohl. Wenn du den gerade beschriebenen Fehler aus deinem Testscript rausmachst (der warum ldap_error() nicht tut).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 13. October 2005 12:38

Womit soll ich es denn dann füttern, statt mit der RessourceID?

Wenn ich die erste Ausgabe auskommentiere und nur:

Code: Select all
   $ldapbind = ldap_bind($ldap_con);
   echo  "LDAP Error ldap_bind ".ldap_error ($ldapbind). "<br><br>";


stehen lasse, kommt als Ergebniss:

Warning: ldap_bind(): Unable to bind to server: Unknown error in /opt/lampp/htdocs/ldap.php on line 14

Warning: ldap_error(): supplied argument is not a valid ldap link resource in /opt/lampp/htdocs/ldap.php on line 15
LDAP Error ldap_bind

Nice try, kid. Better luck next time!
Warning: ldap_search(): Search: Unknown error in /opt/lampp/htdocs/ldap.php on line 26




Wenn ich an der Stelle noch mal $ldap_con einsetzte, bekomme ich:

Warning: ldap_bind(): Unable to bind to server: Unknown error in /opt/lampp/htdocs/ldap.php on line 14
LDAP Error ldap_bind Unknown error
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 13. October 2005 13:02

Womit soll ich es denn dann füttern, statt mit der RessourceID?

In der Fehlermeldung steht doch was er haben will (habs extra fett gemacht...): die "ldap link resource"
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby RickDeckard » 13. October 2005 14:35

Ich habe jetzt noch mal geschaut und weiß einfach nicht, was ich dort einsetzen soll, wenn nicht die Werte.

valid ldap link resource

int link ist das von ldap_error (int link) verlangte Argument.

Frage, was soll ich einsetzten?

Danke
RickDeckard
 
Posts: 15
Joined: 11. October 2005 16:07
Location: Thüringen

Postby Wiedmann » 13. October 2005 15:00

int link ist das von ldap_error (int link) verlangte Argument.

Wo hast du denn das her?

Im PHP-Manual steht:
PHP-Manual wrote:string ldap_error ( resource link_identifier )


Aber um das mal abzukürzen. Der "link_identifier" ist das, was du mit ldap_connect() erzeugt:
PHP-Manual wrote:ldap_connect
resource ldap_connect ( [string hostname [, int port]] )
Returns a positive LDAP link identifier on success, or FALSE on error.


BTW:
ldap_bind() würde ja z.B. nur immer ein Boolean zurückliefern.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 59 guests