【发布时间】: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