在 OSX 10.10 Yosemite 上 Curl POST 到 HTTPS URL 时出现 SSLRead() 错误
问题:
升级到 OSX 10.10 Yosemite 后,对 HTTPS URL 的 CURL POST 请求失败,并出现错误:
Error Number:56 Error String:SSLRead() return error -9806
原因:
当 PHP 运行时会发生此错误使用在 Yosemite 下使用 Apple 安全传输的 cURL 版本编译,目标 URL 不支持 SSLv3。
解决方案:
要解决此问题,请安装使用 cURL 版本的 PHP 版本,该版本使用 OpenSSL 而不是安全传输。步骤如下:
1.检查 cURL 版本:
php -i | grep "SSL Version"
如果输出为“SecureTransport”,请继续下一步。
2.安装自制程序:
brew install homebrew/core/homebrew brew update
3.点击所需的存储库:
brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/php
4。使用 OpenSSL 安装 cURL:
brew install --with-openssl curl
5。使用 Homebrew cURL 和 OpenSSL 安装 PHP:
brew install --with-homebrew-curl --with-httpd24 php55
6.配置 Apache(如果使用):
将以下行添加到 /etc/apache2/httpd.conf:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
7.为 nginx 启动 PHP-FPM(如果使用):
mkdir -p ~/Library/LaunchAgents cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
8.安装 PHP 扩展(可选):
brew install php55-mcrypt
9.验证 OpenSSL:
php -i | grep "SSL Version"
输出应显示“OpenSSL/1.0.2h。”
现在,您对 HTTPS URL 的 CURL POST 请求应该成功,且不会出现 SSLRead() 错误.
以上是如何修复 OSX 10.10 Yosemite 上的 Curl POST 请求中的'SSLRead() 返回错误 -9806”?的详细内容。更多信息请关注PHP中文网其他相关文章!