0

ldap_connect を適切に機能させようとしています。CLI経由では問題なく動作しますが、ブラウザ経由でphpファイルを開くとうまくいきません。

関連する詳細は次のとおりです。

  • エラー メッセージ: 致命的なエラー: 4 行目の F:\Websites\ldap.php の未定義関数 ldap_connect() への呼び出し
  • OS: Windows Server 2008 R2 x64
  • PHP ディレクトリ: C:\Program Files (x86)\PHP
  • libeay32.dll と ssleay32.dll が C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin と C:\Windows\System32 の両方に追加されました。それらは C:\Program Files (x86)\PHP からコピーされました。

httpd.conf に追加された行:

  • LoadModule php5_module "C:/Program Files (x86)/PHP/php5apache2_2.dll"
  • AddType アプリケーション/x-httpd-php .php
  • PHPIniDir "C:/Program Files (x86)/PHP"

php.ini の変更点:

  • extension_dir = "C:/Program Files (x86)/PHP/ext" (パスセット)
  • extension=php_ldap.dll (この行のコメントを外します)

私は髪を引っ張っているので、人々が提案するものを喜んで試します.

4

2 に答える 2

1

PHP インストールでは、2 つの異なる ini ファイルを使用します。1 つはコマンド ラインから実行する場合、もう 1 つは Apache を介して実行する場合です。これは、CLI からは機能しますが、ブラウザーでは機能しないという事実によって証明されます。

phpinfo()2 つのファイルへのパスは、 (ブラウザーで)コマンド ラインからに-iフラグを渡すことで見つけることができます。php両方の出力セットの上部近くに、使用中の ini ファイルへのパスが表示されます。それらが同一であるとしたら、私は非常に驚かれることでしょう。--iniコマンドラインからフラグを渡すことで、より詳細な情報を取得できます。

取得しているという事実は、LDAP 拡張機能がロードされていないCall to undefined function ldap_connect()ことを意味するだけであり、これは Apache を介してのみ当てはまり、2 つの異なる ini ファイルを使用する場合、CLI を介しては当てはまりません。

于 2012-01-04T01:19:38.673 に答える
0

私は今、ばかげていると感じています。問題は、PHP ディレクトリを PATH 環境変数に追加することでした。なぜ問題が解決したのかは100%わかりませんが、それが原因でした。助けてくれてありがとう、みんな!

于 2012-01-04T17:15:36.343 に答える