1

PHP がソースからコンパイルされたバージョン 5.4 までは、LDAP 拡張機能はc:\openldap\sysconfフォルダーで証明書を探すようにハードコーディングされていました。5.5 以降、この「ハーコード」は %SYSCONFDIR% という環境変数に置き換えられました。ただし、何をしても、LDAP拡張機能が以前と同じディレクトリを指すようにすることはできません! :(

PHP 5.4 では、ldap_config.h

#define LDAP_SYSCONFDIR "c:\\openldap\\sysconf"

PHP 5.5 では、ldap_config.h

#define LDAP_SYSCONFDIR "%SYSCONFDIR%"

私の悪い英語でごめんなさい。どんな手掛かり?ありがとう。

4

3 に答える 3

1

Sysinternals Process Explorer でトレースを実行したところphp_ldap was、ファイルを開こうとすると、文字どおりに解釈され、環境変数の内容から展開されないことが明らかになりました。に Apache をインストールしましたが、Apache フォルダの名前によって正確なパスが異なることは明らかです。Apache インストールのルート フォルダーに、(文字通り!)という名前のフォルダーを作成し、そこに配置します。それは私のためにそれを解決しました。C:\Apache24\%SYSCONFDIR%\ldap.conf%SYSCONFDIR%C:\Apache24%SYSCONFDIR%ldap.conf

于 2013-08-27T12:20:58.930 に答える