【问题标题】:Php curl on windows 10, php 5.6.17Windows 10 上的 PHP 卷曲,php 5.6.17
【发布时间】:2016-04-27 18:25:30
【问题描述】:

有很多类似的话题,但没有解决我在window 10上的问题(在新电脑上,电脑是完全干净的)。

我在 Windows 10 上使用 php 5.6.17 安装 EasyPhp,干得好! => curl_init() 不起作用

现在我想安装 curl。 首先,在 php.ini 中我取消注释“extension=php_curl.dll”行(这是好的 php.ini,我在 phpinfo() 中看到了路径),然后重新启动 Apache。 => curl_init() 不起作用

我在 Windows/system32 中添加了 libeay32.dll、libssh32.dll 和 ssleay32.dll。 => curl_init() 不起作用

在这一步,卷曲工作在我的 Windows 7 上完成。

我在 Apache/bin 中添加了 libeay32.dll、libssh32.dll 和 ssleay32.dll。 => curl_init() 不起作用

我在 Windows/system32 中添加了 php_curl.dll。 => curl_init() 不起作用

我尝试使用 php_curl.dll 32 和 64。 => curl_init() 不起作用

我安装了软件 OpenSSL(curl 需要 ssl)。 => curl_init() 不起作用

除了“致命错误:调用未定义的函数 curl_init()”外,我没有任何错误消息。 phpinfo() 从不显示 curl 模块。

我的解决方案快用完了,你知道吗?

【问题讨论】:

    标签: php apache curl windows-10 easyphp


    【解决方案1】:

    我发现了一个问题(经过一整天的时间处理这个问题)。 如果你遇到同样的问题,试试这个:

    • 打开命令提示符并转到您的 php 根目录
    • exec : deplister.exe ext\php_curl.dll
    • 检查依赖关系

    对我来说,缺少 libssh32.dll 文件,但它位于 Windows/system32 和 apache/bin 中。为了解决这个问题,我在路径windows中添加php目录,并将文件libssh32.dll复制到php目录中。

    Source

    【讨论】:

    • 如果我再读到关于 SO(或任何其他网站)的建议,将 PHP 文件夹添加到 PATH 我会尖叫!这行不通!!!至少不是 PHP 7.1.0 和 Windows 10。我也尝试了 OP 所说的一切,但仍然没有! WTF 给 PHP 开发者?!?!我需要降级才能让它工作吗?!
    • C:\php>deplister.exe ext\php_curl.dll php5ts.dll,OK LIBEAY32.dll,OK WS2_32.dll,OK libssh2.dll,OK SSLEAY32.dll,OK WLDAP32.dll,好的 Normaliz.dll,好的 KERNEL32.dll,好的 MSVCR110.dll,好的,这就是我得到的,cURL 仍然无法正常工作。
    【解决方案2】:

    我在这个开发设置中遇到了完全相同的问题:

    • Windows 10
    • PHP 5.6.27
    • Apache 2.2(是的,我知道 v2.4 更新)

    在 PHP-CLI 中它可以工作(已加载 php curl ext),但在通过 Apache 运行时则不能(未加载 php curl ext)。

    在花了相当长的时间阅读并尝试了不同的解决方案之后,*Jeremy 在“deplister”命令方面对我的帮助最大。

    事实证明(对我而言)相同的 dll 文件(如 libeay32.dll 和 ssleay32.dll)存在于各种文件夹(如 php/、apache/bin 和 windows/system32)中。然而,即使命名相同,也有不同的版本,由不同的日期和大小表示。

    使 php-curl 神奇地为我工作的是用我在 php/(php 根文件夹)中找到的较新版本替换 apache/bin 中的 libeay32.dll 和 ssleay32.dll,然后重新启动 apache 服务。

    所有这些文件夹都存在于系统 PATH 中,但 Apache 显然首先查看它自己的 bin 文件夹。所以,我发现将较新的 dll 复制到 Apache bin 文件夹比依赖系统 PATH 更好。

    希望它可以帮助别人。

    【讨论】:

      【解决方案3】:

      除了 kapy47 答案:在我的情况下,我检查了 apache/bin 和 php 目录中的 libssh2.dll,它们是不同的版本。我用 apache/bin 中的较新版本替换,问题解决了

      【讨论】:

        【解决方案4】:

        系统配置: 操作系统:Win 10 64位 服务器:Wamp PHP版本:5.6.40

        从 Wamp 中的 php 版本文件夹中复制 libssh2.dll 文件并将其放入 apache/bin 然后重启 apache,现在 curl_init 可以完美运行了!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-18
          • 2021-10-05
          • 1970-01-01
          • 2012-08-31
          • 2012-06-28
          • 1970-01-01
          • 1970-01-01
          • 2018-06-07
          相关资源
          最近更新 更多