Windows 2008 R2 服务器上的 CURL 损坏
Posted
技术标签:
【中文标题】Windows 2008 R2 服务器上的 CURL 损坏【英文标题】:Broken CURL on Windows 2008 R2 Server 【发布时间】:2017-02-14 11:50:22 【问题描述】:我最近在 Stripe.com 遇到了一个问题,他们的 API 需要 TLS 1.2。
我尝试按照以下步骤在服务器上升级 OpenSSL,但之后尝试运行 curl_version() 时,我收到此错误:
调用未定义的函数 curl_version()
但是,在我尝试此更新之前,CURL 工作正常(TLS 问题除外)。
这是我遵循的过程:
我在这里下载了 OpenSSL 二进制文件:https://indy.fulgan.com/SSL/openssl-1.0.2j-x64_86-win64.zip
停止 IIS 将 libeay32.dll 和 ssleay32.dll 复制到 php 文件夹(旧版本所在的位置)
重新启动 IIS
我的系统是:
操作系统: Windows 2008 RS2 64 位
PHP 版本: 5.3.8
我希望我现在不需要编译 PHP 并重新安装新版本。
感谢您的帮助
谢谢。
【问题讨论】:
PHP curl 扩展现在可能无法加载,因为它链接到较旧的 OpenSSL 版本,因此您可能需要获取更新的 curl 版本。错误日志也可能会在 PHP 启动时显示一些 curl 相关的错误。 谢谢。我去 cURL 网站下载了最新版本,但我不知道如何在服务器上更新它。 我想更多的是从windows.php.net/download 获取它——不过有点忘了你使用的是旧的不受支持的版本。也许尝试从windows.php.net/downloads/releases/archives/… 的ext 目录中获取php_curl.dll,看看是否可行。否则,问题将是这些旧 DLL 与旧版本的 OpenSSL 链接,并且除非您安装更新版本的 PHP,否则将不兼容。 我试过了,但遇到了各种问题。我担心更改影响其他网站的 PHP 版本我忘记了 IIS 可以安装不同版本的 PHP,所以我只安装了 PHP 5.8.26(我知道它不是最新版本),结果证明它是最简单最干净的解决方案。感谢您的帮助@drew010 【参考方案1】:经过多次尝试,我放弃了,只安装了更新版本的 PHP。我忘记了 IIS 可以安装多个版本的 PHP,所以这对我来说是最好的选择,坦率地说是最简单的解决方案。
【讨论】:
以上是关于Windows 2008 R2 服务器上的 CURL 损坏的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server 2008 R2 上的 .NET 2.0 Web 服务未找到模块异常
Windows 2008 R2 64 位机器 (Tridion 5.3) 上的 ComponentPresentationAssembler 错误
在 asp.net 中的 windows server 2008 R2 上的 PDF 缩略图