gpt4 book ai didi

php - osx 10.10 Curl POST 到 HTTPS url 给出 SSLRead() 错误

转载 作者:IT老高 更新时间:2023-10-28 11:56:34 26 4
gpt4 key购买 nike

我最近刚刚升级到 OSX 10.10 Yosemite,自从升级后我不能再对 SSL url 进行 Curl POST。

我首先使用了 wordpress 的 wp_remote_request 调用,还尝试在 php 中使用 curl。两者(如预期)都给出相同的错误消息:

Error Number:56

Error String:SSLRead() return error -9806

注意:当我将 POST curl 到 HTTP 时,它工作正常。我认为这是 PHP.ini 或我的 apache 中的一个设置(升级后我丢失了原来的 HTTPD.conf 文件......)。

谁能帮帮我?

最佳答案

我看到当使用使用 Apple's Secure Transport 的 cURL 版本编译 php 时会发生此错误。在 Yosemite 下并且 URL 请求的目标不支持 SSLv3(可能由于 POODLE vulnerability 而被禁用)。这个命令的输出是什么?

$ php -i | grep "SSL Version"

我怀疑你会看到这个:

SSL Version => SecureTransport

您可以通过安装一个使用 OpenSSL 而不是 SecureTransport 的 cURL 版本的 php 版本来克服这个问题。使用 homebrew 最容易做到这一点.因此,如果您还没有它,请先安装它。如果安装了自制软件,但您在升级到优胜美地后没有运行 brew update,请先执行此操作。还要确保您已安装 XCode >= 6.1 和最新的 XCode 命令行工具。 brew doctor 会告诉你你是否做得很好。

在下面添加您需要的 Homebrew 水龙头,以便安装 brewed php。如果这些存储库已被点击,请跳过此步骤。如果您不确定这些存储库是否已被利用,只需运行以下命令。最坏的情况,你会得到一个无害的警告:已经被点击!

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php

然后用 openssl 安装 curl:

$ brew install --with-openssl curl

然后使用你刚刚安装的curl安装php并冲泡openssl:

$ brew install --with-homebrew-curl --with-httpd24 php55
  • 如果使用 apache,请确保将 LoadModule php5_module/usr/local/opt/php55/libexec/apache2/libphp5.so 添加到您的 /etc/apache2/httpd .conf 并重启 apache。

  • 如果不使用 apache 2.4,您可以从上述命令中删除 --with-httpd24

  • 如果使用 nginx,请遵循启动 fpm 的警告说明:

    To launch php-fpm on startup:

    mkdir -p ~/Library/LaunchAgents
    cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist

安装您需要的任何 php 扩展,例如。 mcrypt.

$ brew install php55-mcrypt

完成后,再次运行:

$ php -i | grep "SSL Version"

你应该看到:

SSL Version => OpenSSL/1.0.2h

现在,重新测试您的应用程序,SSLRead() 返回错误 -9806 应该会消失。

关于php - osx 10.10 Curl POST 到 HTTPS url 给出 SSLRead() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26461966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com