Kann PHP LDAP nicht aktivieren, obwohl ich php.ini bearbeitet habe und php_ldap.dll an der richtigen Stelle ist?

Lesezeit: 4 Minuten

Benutzer-Avatar
Ciaran Phillips

Ich arbeite schon seit einiger Zeit mit einer WAMP-Installation mit aktiviertem LDAP und alles läuft reibungslos. Jetzt muss ich jedoch eine andere Maschine einrichten und kann LDAP aus irgendeinem Grund nicht aktivieren.

Ich habe die Ausgabe von überprüft phpinfo() und der LDAP-Abschnitt ist nicht da. Ich habe bearbeitet php.ini die Zeile auskommentieren:

extension = php_ldap.dll

Ich habe auch den Dateipfad überprüft, der nach Erweiterungen und der Datei durchsucht wird php_ldap.dll ist an der richtigen Stelle.

Ich bin positiv Ich bearbeite das Recht php.ini Datei, da ich den angezeigten Dateipfad überprüft habe phpinfo()und ich kann auch andere Erweiterungen erfolgreich aktivieren/deaktivieren.

Ich habe Apache nach jeder vorgenommenen Änderung neu gestartet.

Während ich dies googelte, waren die einzigen Lösungen, die ich fand, die oben genannten, plus ein oder zwei Erwähnungen der Bearbeitung von Windows PATH Variable, um den Pfad zu enthalten php.ini? Ich habe es versucht, obwohl es für mich keinen Sinn ergab (wie ich bereits weiß php.ini wird geparst). Ich habe auch meine vorherige Installation auf dem anderen Computer überprüft und soweit ich sehen kann, habe ich nie irgendwelche PHP-Verzeichnisse zu hinzugefügt PATH auf dieser Maschine

Bearbeiten Sie mit vollständiger Antwort

Franks Antwort unten führte mich zur Lösung, also dachte ich, ich würde jetzt alles konsolidieren.

So aktivieren Sie die LDAP-Unterstützung auf einem WAMP-Server:

  1. Kommentieren extension = php_ldap.dll in php.ini
  2. WICHTIG: Stellen Sie sicher, dass Sie das Recht bearbeiten php.ini indem Sie die Ausgabe von überprüfen phpinfo()
  3. Überprüf den php.ini Datei für den Speicherort Ihres Erweiterungsverzeichnisses
  4. Prüfe das php_ldap.dll befindet sich in diesem Verzeichnis
  5. (DER SCHRITT, DEN ICH VERPASST HABE) Finden Sie die Dateien libeay32.dll und ssleay32.dll und fügen Sie ihr Verzeichnis zum Windows PATH hinzu
  6. Starten Sie Apache neu. Wenn LDAP aktiviert ist, wird es in der Ausgabe von einen Abschnitt darüber geben phpinfo()

  • Hier gibt es ein paar Hinweise: php.net/manual/en/ldap.installation.php . Beachten Sie, dass Sie zwei weitere DLLs hinzufügen müssen libeay32.dll and ssleay32.dll. Möglicherweise müssen Sie auch mit kompilieren --with-ldap

    – Frank Bauer

    11. Januar 2012 um 21:04 Uhr


  • Hm … Ich habe jetzt keinen Zugriff auf die Maschine, aber ich habe das Gefühl, dass ich das brauche. Ich habe oben erwähnt, dass ich das php.ini-Verzeichnis zu PATH hinzugefügt habe, vielleicht habe ich etwas falsch verstanden, das besagt, dass das Erweiterungsverzeichnis zum PATH hinzugefügt werden soll. Ich habe die beiden DLL-Dateien möglicherweise direkt in system32 kopiert, als ich das letzte Mal eingerichtet habe, also hätte ich keine Hinweise gefunden, als ich den PATH dieses Computers überprüft hätte

    – Ciaran Phillips

    11. Januar 2012 um 21:13 Uhr


  • @FrankFarmer es funktioniert jetzt! Diese beiden Dateien befanden sich im selben Verzeichnis wie das php.ini war drin, wurde aber offensichtlich nicht gefunden. Ich habe dieses Verzeichnis zum Windows PATH hinzugefügt und LDAP wurde aktiviert! Ich habe die erste Maschine (die funktionierte) danach erneut auf diese Dateien überprüft, sie befanden sich im Standard-Erweiterungsordner von PHP. Vielleicht reicht es also aus, sie dorthin zu kopieren, anstatt die PATH-Variable zu verwenden. Ich habe damals nicht daran gedacht, nachzusehen, aber morgen früh werde ich diese Dateien verschieben und neu starten. Dann melde ich mich hier nochmal, damit alles abgedeckt ist.

    – Ciaran Phillips

    12. Januar 2012 um 20:20 Uhr


  • @FrankFarmer Dein Kommentar führte direkt zur Lösung, also wenn du eine Antwort posten möchtest, werde ich es akzeptieren

    – Ciaran Phillips

    12. Januar 2012 um 20:23 Uhr

  • als ich gesehen habe php.ini diese einreichen (extension = php_ldap.dll) war nicht da ich habe gerade diese zeile hinzugefügt und ldap aktiviert.

    – Makarand Mähne

    1. Mai 2014 um 18:41 Uhr


Hier gibt es ein paar Hinweise: http://php.net/manual/en/ldap.installation.php . Beachten Sie, dass Sie zwei weitere DLLs hinzufügen müssen libeay32.dll und ssleay32.dll. Möglicherweise müssen Sie auch mit kompilieren --with-ldap

Benutzer-Avatar
alexkb

Ich habe diese Anweisungen befolgt, konnte aber immer noch kein LDAP-Laden in meiner phpinfo() bekommen. Die Apache-Protokolle zeigten beim Start die folgende nicht schwerwiegende Meldung: ######/php5.4.16/ext/php_ldap.dll - The specified module could not be found. in Unknown on line 0

Am Ende habe ich mir phpinfo() noch einmal angesehen und festgestellt, dass die Systemvariable PATH anstelle meiner Benutzervariablen PATH verwendet wurde und nicht den richtigen Pfad zum Stammverzeichnis von PHP und zum Erweiterungsordner von PHP enthielt. Fügen Sie sie einfach hinzu ####\php\php5.4.16;####\php\php5.4.16\ext; und Apache neu starten, hat das Problem gelöst. Hoffe, das kann jemand anderem helfen.

Benutzer-Avatar
Miau Kim

  1. Kasse libsasl.dll libeay32.dll, ssleay32.dll in Ihrem PHP-Ordner
  2. Wenn libeay32.dll, ssleay32.dll sind nicht da, laden Sie es von herunter https://code.google.com/archive/p/openssl-for-windows/downloads
  3. Kopieren Sie sie nach System32 Ordner unter Windows
  4. Jetzt können Sie den LDAP-Abschnitt über sich sehen phpinfo(). bei mir hat es funktioniert.

Meine Umgebung

Windows 10
PHP7.4.3
Apache 2.4.41

ich benutze phpstorm. Wenn Sie den Kommentar nicht finden können, fügen Sie einfach “extension = php_ldap.dll” am Ende Ihrer php.ini-Seite ein. gerne geschehen

1028580cookie-checkKann PHP LDAP nicht aktivieren, obwohl ich php.ini bearbeitet habe und php_ldap.dll an der richtigen Stelle ist?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy