如何在PHP中启用LDAP – Windows Server 2008

我已经使用Web Platform Installer在我的Win Server 2008中安装了PHP。 安装是成功的,我可以正确显示从我的虚拟目录phpinfo页面。 我如何启用LDAP支持? c:\Program Files\PHP\Ext\不包含php_ldap.dll 。 我必须先下载这个文件吗?

编辑:

  • 我使用Win Svr 2008标准版,更新到最新的补丁
  • PHP版本是5.2.11
  • extension_dir是c:\ Program Files \ PHP \ ext \(由phpinfo()确认)
  • 我已经下载完整的PHP压缩包(10 megs),并且:将ext dir的内容复制到c:\ Program Files \ PHP \ ext \
  • 我已经修改了php.ini以包含php_ldap.dll扩展名
  • 这里是我的phpinfotesting页面的屏幕截图

并且LDAP扩展名仍然不起作用。

你最好的select是从PHP.net网站下载PHP的最新Zip版本,并从中获取DLL并从中提取DLL文件。

不知道为什么它不包含在networking平台安装程序,似乎有点奇怪。

我不得不在IIS中启用该模块

在Windows Server 2008r2上启动iis manager

导航到根站点。

下载,安装并启动phppipe理器(不会通过WPI安装WordPress)。

滚动到底部并点击“启用或禁用扩展程序”

向下滚动到禁用部分单击php_ldap.dll突出显示,然后在右下angular的操作部分单击“启用”

退出并且为安装“WordPress”时通过“Microsoft Web平台安装程序”安装的PHP 5.3.1安装了ldap。

在我的情况下:
* Windows Server 2008 R2
*通过WebPlatformInstaller的PHP 5.3
* 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 

在Linux上,LDAP通常是PHP的可选扩展 ,需要单独安装。 Windows也可能是这种情况。

如果你已经在php的扩展部分取消注释php_ldap.dll,我相信PHP不会正确读取php.ini

  • IIRC我总是将PHP安装到path中没有空格的path(例如C:\PHP )。
  • 尝试将C:\program files\php\php.ini复制到C:\windows\并重新启动Apache / IIS。

也许这可以帮助你。

所以你可能需要在phpinfo()中检查以下内容:

  1. 如果您正在使用IIS,请检查以确保您的IIS工作进程在NTFS上具有对“C:\ Program Files \ PHP”目录的读取访问权限。 这个工作进程可以是networking服务IWAM_ <computername>本地系统 (我不希望)。
  2. 当你加载phpinfo(); 在输出中检查以下几行以确保它们在您期望的位置:
    – extension_dir
    – 加载的configuration文件
    这些项目需要你期望他们报告,而不是从其他地方加载。
  3. 您还需要将文件添加到系统的“path”: libeay32.dllssleay32.dll ,并可能需要重新启动系统; 正如一些用户所logging的,将PATH放在PATHvariables的开头附近可能会消除一些问题。 这是logging在这里: http : //us2.php.net/manual/en/ldap.installation.php

我没有看到原来的问题,看到他已经启用了php_ldap.dll,但那是我的问题。

在最近(2014年初)的WPI安装中, php_ldap.dll已经准备好了,只是没有在php.iniconfiguration。

  1. phpinfo()的输出不包含ldap部分
  2. 以pipe理员身份编辑PHP.ini (请参阅phpinfo()以获取完整path…我恰巧位于C:\Program Files (x86)\iis express\PHP\v5.4\php.ini
  3. WPI将启用的模块放在文件的底部。 添加extension=php_ldap.dll
  4. phpinfo()立即显示ldap部分。