web-dev-qa-db-ja.com

PHP-Windows Server 2008でLDAPを有効にするにはどうすればよいですか?

PHP Win Server 2008にWeb Platform Installerを使用してインストールしました。インストールは成功し、仮想ディレクトリからphpinfoページを正しく表示できます。LDAPサポートを有効にするにはどうすればよいですか?c:\Program Files\PHP\Ext\にはphp_ldap.dllが含まれていません。最初にこのファイルをダウンロードする必要がありますか?

編集:

  • Win Svr 2008 Standard Editionを使用していますが、最新のパッチに更新されています
  • PHPバージョンは5.2.11です
  • extension_dirはc:\ Program Files\PHP\ext \です(phpinfo()で確認)
  • 私はすでに完全なPHP Zipパッケージ(10メガ))をダウンロードし、:ext dirの内容をc:\ Program Files\PHP\ext \にコピーします
  • 私はすでにphp_ini.dll拡張機能を含むようにphp.iniを変更しました
  • これが私の phpinfoテストページの画面キャプチャです

lDAP拡張機能はまだ機能していません。

3
Salamander2007

あなたの最善の策は、PHP PHP.net サイトから最新のZipバージョンをダウンロードして、そこからDLLを取得することです。 DLLファイルをそこから抽出します。

それがWebプラットフォームインストーラーに含まれていない理由がわからないので、少し奇妙に思われます。

3
Sam Cogan

私の場合:
* Windows Server 2008 R2
* PHP 5.3 WebPlatformInstaller経由
* IIS

エラー行は:

PHP Fatal error:  Call to undefined function ldap_connect() in ...Tageskonto.php on line 19

ファイルを拡張するのに役立ちました
* c:\ program files(x86)\ php\v5.3\php.ini
dllをロードするには:

[ExtensionList]
extension=php_ldap.dll
2
MartinK

IISでモジュールを有効にする必要がありました

windows Server 2008r2でiisマネージャーを起動する

ルートサイトに移動します。

pHPマネージャーをダウンロード、インストール、起動します(WordPressでインストールしないでください)。

一番下までスクロールして、「拡張機能を有効または無効にする」をクリックします

無効なセクションまで下にスクロールし、php_ldap.dllをクリックして強調表示し、右上のセクションのアクションの下にある[有効にする]をクリックします。

「WordPress」をインストールすると、「Microsoft Web Platform Installer」を介してインストールされたPHP 5.3.1に対して、exitおよびLDAPがインストールされます。

2
Rik Danner

Linuxでは、LDAPは多くの場合オプションです拡張からPHPであり、個別にインストールする必要があります。これはWindowsの場合も同様です。

0
sybreon

私は元の質問を十分に読んでいないため、彼がすでにphp_ldap.dllを有効にしているのを確認できませんでしたが、それが私の問題でした。

最近(2014年初頭)のWPIインストールでは、_php_ldap.dll_があり、準備ができています。_php.ini_で構成されていないだけです。

  1. phpinfo()の出力にldapセクションが含まれていない
  2. 管理者として_PHP.ini_を編集します(フルパスについてはphpinfo()を参照してください...たまたまC:\Program Files (x86)\iis express\PHP\v5.4\php.iniにあります)
  3. WPIは有効なモジュールをファイルの下部に配置します。 _extension=php_ldap.dll_を追加
  4. phpinfo()は、ldapセクションをすぐに表示します。
0
Nathan

PHPの拡張セクションでphp_ldap.dllのコメントを外した場合、PHPが適切なphp.iniを読み取らないと思います。

  • IIRC私は常にインストールしましたPHPパスにスペースを含まないパス(例:C:\PHP)。
  • C:\program files\php\php.iniC:\windows\にコピーして、Apache/IISを再起動してください。

多分これのいくつかはあなたを助けます。

0
blank3

したがって、phpinfo()で次のことを確認する必要がある場合があります。

  1. IISを使用している場合は、IISワーカープロセスがNTFSで「C:\ Program Files\PHP」ディレクトリへの読み取りアクセス権を持っていることを確認してください。このワーカープロセスはNETWORK SERVICEまたはIWAM_ <computername>またはローカルシステム(私は望んでいない)。
  2. phpinfo();を出力にロードしたら、次の行をチェックして、期待どおりの場所であることを確認します。
    -extension_dir
    -ロードされた構成ファイル
    これらのアイテムは、他の場所から読み込まれるのではなく、レポートする場所である必要があります。
  3. また、システムの「PATH」にファイルを追加する必要があります:libeay32.dllおよびssleay32.dll、そしてピックアップするにはシステムの再起動が必要になる可能性があります。一部のユーザーが文書化しているように、PATH変数の先頭近くにPATHを配置すると、いくつかの問題が解消される場合があります。これはここに文書化されています: http://us2.php.net/manual/en/ldap.installation.php
0
James Hawkwind