Windows 10 上的 PHP 卷曲,php 5.6.17
Posted
技术标签:
【中文标题】Windows 10 上的 PHP 卷曲,php 5.6.17【英文标题】:Php curl on windows 10, 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 模块。
我的解决方案快用完了,你知道吗?
【问题讨论】:
【参考方案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 可以完美运行了!
【讨论】:
以上是关于Windows 10 上的 PHP 卷曲,php 5.6.17的主要内容,如果未能解决你的问题,请参考以下文章