PHP ldap_connect()问题

时间:2012-01-04 00:27:29

标签: php apache ldapconnection

我想让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(取消注释此行)

我把头发拉了出来,所以我很乐意尝试任何人的建议。

2 个答案:

答案 0 :(得分:1)

您的PHP安装使用两个不同的ini文件 - 一个从命令行运行,另一个在通过Apache运行时。事实证明,它可以在CLI中运行,但不能在浏览器中运行。

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

您获得Call to undefined function ldap_connect()只能意味着没有加载LDAP扩展,这只能通过Apache实现,但如果使用两个不同的话,则不能通过CLI实现ini文件。

答案 1 :(得分:0)

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