【问题标题】:Apache on Windows cant find php extensionsWindows 上的 Apache 找不到 php 扩展
【发布时间】:2016-11-19 21:34:26
【问题描述】:

我在 Windows Server 2012 上安装了 Apache 2.4 和 php。

我正在尝试加载 php_ldap.dll 扩展。

这是我所做的:

php.ini 我设置了以下内容:

extension_dir = "C:\php\ext"

extension=php_ldap.dll

然后,我确保该 dll 在该路径上可用,是的,它就在那里:

phpinfo 表明我正在编辑正确的php.ini 并且extension_dir 已更新。

但是,当我启动 Apache 时,php_ldap.dll 没有加载。

Apache 日志显示此警告:

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\php\\ext\\php_ldap.dll' - The specified module could not be found.\r\n in Unknown on line 0

我该如何解决这个问题?

另外,\\ 是怎么回事?为什么它会加倍“\”,这是问题所在吗?

【问题讨论】:

  • double \\ 用于转义第一个 \ 不,这不是问题
  • 我不确定这是否是问题,但请尝试将 extension_dir = "C:\php\ext" 替换为 extension_dir = "C:\php\ext\"
  • 注意ldap扩展还需要以下两个库libeay32.dllssleay32.dll。您需要确保这两个库在您的PATH 中,例如在C:\Windows\System32 下。 php.net/manual/en/ldap.installation.php
  • stackoverflow.com/questions/12348/… 也看看这里是否会带你到某个地方

标签: php apache ldap apache2 windows-server-2012-r2


【解决方案1】:

我的最佳猜测是您的系统中缺少所需的库。 php_ldap 扩展要求在系统上同时安装 libeay32.dllssleay32.dll

来自ldap installation manual

注意:Win32 用户注意事项

为了使这个扩展工作,必须有 DLL 文件 可用于 Windows 系统 PATH。有关如何做的信息 这个,请参阅标题为“如何将我的 PHP 目录添加到 PATH 在 Windows 上”。虽然将 DLL 文件从 PHP 文件夹复制到 Windows 系统目录也可以(因为系统目录是 默认情况下在系统的 PATH 中),不建议这样做。这 扩展要求以下文件位于 PATH 中:libeay32.dll 和 ssleay32.dll PHP 4.3.0 之前的版本还需要 libsasl.dll。

【讨论】:

    【解决方案2】:

    不要在 php.ini 中使用反斜杠!

    即使在 Windows 系统上,也始终在 php.ini 中添加斜线。

    extension_dir = "C:/php/ext"
    
    extension=php_ldap.dll
    

    【讨论】:

    • 虽然这可能是个好建议,但它可能更适合作为评论而不是答案,因为它实际上并没有解决问题
    • 我在我的 Windows 系统上遇到了同样的扩展问题。 extension_dir = "C:/phpintalldir/ext" 是键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多