4

私はWAMPを使用しており、次のようなものを実行しようとしています:

<?php

$ldap = ldap_connect("ldap.example.com");

$user = "exampleUser";
$pass = "examplePass";

if($bind = ldap_bind($ldap, $user, $pass)) {
  // logged in
} else {
  // error message
}

?>

ただし、これを行う前に、ldap がインストールされているかどうかを確認するために phpinfo() を実行してみましたが、どこにも表示されません。

私は次のことを試しました:

  1. php.ini の次の行のコメントを外します: extension=php_ldap.dll
  2. これらのファイルを php.ini と同じディレクトリにコピーしました: ssleay32.dll および libeay32.dll
  3. 環境変数に以下を追加しました: C:\wamp\bin\php
  4. これらのいずれかを実行した後、再起動しました。

何をしているのかよくわかりませんが、これらはオンラインで見つけた提案でした。どんな助けでも大歓迎です!

4

5 に答える 5

6

OPがこの質問を投稿してから1年以上が経過しているため、この回答はこの質問に出くわした他の人にとって役立つ場合があります。

私は走っています

  • WAMP バージョン: 2.4
  • アパッチのバージョン: 2.4.4
  • PHP バージョン: 5.4.16

Google 検索で得られる解決策のほとんどを試してみましたが、何もうまくいかないようでした。PHPページを見ることをお勧めするフォーラム

上記のリンクの Frank という名前のユーザーにコピーlibsasl.dllすることを[apache folder]\binお勧めしますが、これは以前のバージョンの php に対してのみ推奨されていますが、このファイルは php フォルダーにあります。

copy "C:\wamp\bin\php\php5.4.16\libsasl.dll" "C:\wamp\bin\apache\apache2.4.4\bin\libsasl.dll"

これは私にとってはうまくいったことであり、関数をphpinfo()実行する以外にまだ適切にテストしていませんが、LDAP を使用すると LDAP が表示されるようになりました。ldap_connect()応用。

私が追加しlibsasl.dllたApacheビンに追加する以外に(つまり、Windows環境変数->システム変数->パス)、Apacheとphpビンの両方に追加しましたが、必要かどうかはわかりませんが、現在は機能しています。C:\wamp\bin\apache\Apache2.4.4\binC:\wamp\bin\php\php5.4.16PATHssleay32.dlllibeay32.dll

于 2014-01-23T11:43:49.853 に答える
0

「libsasl.dll」を php ディレクトリから apache ディレクトリに単純にコピーし、明らかに httpd を再起動しました。これで私の問題は解決しました。

これは WAMP のインストールではなく、apache と php を別々にインストールしました。おそらく、WAMP または LAMP の場合、さらにいくつかのファイルが必要になることがあります。

于 2014-07-10T03:58:19.300 に答える
0

どのようなエラーが発生しますか? 関数が存在しない?

また、ldap_connect 関数の後に次の行を追加する必要があります。

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_DEBUG_LEVEL, 7);

if(!$ldap){
    echo "LDAP Failed To Connect: ".ldap_error($ldap);
}

オプションは LDAP をプロトコル バージョン 3 に設定します。これは、サーバー 2k3 などの Active Directory などに必要であり、LDAP 接続でのデバッグを有効にします。

アップデート

また、phpinfo() を実行して、拡張機能のディレクトリを探します。そのディレクトリに移動し、そこに php_ldap.dll が存在することを確認します。

于 2012-06-07T15:58:58.830 に答える