我在运行 2008 R2 的 Web 服务器上运行 php ldap 扩展时遇到了问题。
安装说明
- 阿帕奇: httpd-2.2.16-win32-x86-no_ssl.msi
- PHP:VC6 x86 线程安全 (2010-Jul-21 20:06:17) (ZIP)
- php 目录服务
我已采取的措施
- 确保
php_ldap.dll
在C:\PHP\ext
(我必须从http://bugs.php.net/bug.php?id=46971) - 已确定
libeay32.dll
并且ssleay32.dll
C:\PHP
C:\PHP
已添加到PATH
extension=php_ldap.dll
未注释php.ini
extension_dir
设置C:\PHP\ext
为php.ini
- 运行了
phpinfo();
正确的php.ini
加载,但 ldap 尚未初始化
我真的不知道可能发生了什么,当我尝试使用扩展时,出现以下错误(因为它没有加载,所以这是预料之中的):
exception 'adLDAPException' with message 'No LDAP support for PHP. See: http://www.php.net/ldap' in C:\Website\hmis\adLDAP.php:338 Stack trace: #0 C:\Website\hmis\login.php(10): adLDAP->__construct() #1 C:\Website\hmis\index.php(2): require_once('C:\Website\hmis...') #2 {main}
有人能给出一些建议,看看哪里可能出错了?谢谢。
编辑:因此,似乎 5.3.3 VC6 版本中缺少 php_ldap.dll,我的副本来自 5.3.1 VC6 版本。这会导致问题吗?我正在使用 apache,因此无法使用官方 VC9 PHP 版本,我应该尝试使用 ApacheLounge 版本吗?我不认为这有必要,因为我的 LDAP 可以使用 5.3.1 的官方版本
编辑2:因此,我尝试过的另一件事是完全删除php_ldap.dll
。C:\PHP\ext
我得到了与之前完全相同的错误,并且 Apache 并没有像我预期的那样崩溃。它不应该无法以缺少的扩展名启动吗?
答案1
我在 2008 机器上也遇到过类似的问题。我的问题原来是由于 dll 不正确造成的。可能值得确保它们来自线程安全版本。希望这能有所帮助。