0

我试图让 ldap_connect 正常工作。它可以通过 CLI 正常工作,但当我通过浏览器打开我的 php 文件时就不行了。

以下是我认为的相关细节:

  • 错误消息:致命错误:在第 4 行的 F:\Websites\ldap.php 中调用未定义函数 ldap_connect()
  • 操作系统: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 application/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 安装使用两个不同的 ini 文件 - 一个从命令行运行时,另一个在通过 Apache 运行时。事实证明,它可以在 CLI 中运行,但不能在浏览器中运行。

phpinfo()您可以使用(在浏览器中)并通过从命令行传递-i标志来找到这两个文件的路径。php在两组输出的顶部附近,您会发现正在使用的 ini 文件的路径,如果它们相同,我会感到非常惊讶。--ini在命令行中,您可以通过传递标志来获取更详细的信息。

您得到的事实Call to undefined function ldap_connect()只能意味着未加载 LDAP 扩展,如果他们使用两个不同的 ini 文件,这只能通过 Apache 而不是通过 CLI 实现

于 2012-01-04T01:19:38.673 回答
0

我现在觉得很傻。问题在于将我的 PHP 目录添加到 PATH 环境变量中。我不是 100% 确定它为什么解决了这个问题,但这就是最终的结果。谢谢你们的帮助,伙计们!

于 2012-01-04T17:15:36.343 回答