我已经看到当使用在优胜美地下使用Apple的Secure Transport的cURL版本编译php且URL请求的目标不支持SSLv3(由于POODLE漏洞而被禁用)时,会发生此错误。该命令的输出是什么?
$ php -i | grep "SSL Version"
我怀疑您会看到以下内容:
SSL Version => SecureTransport
您可以通过安装使用版本cURL的php版本来解决此问题,该版本的cURL使用OpenSSL而不是SecureTransport。使用自制程序最容易做到这一点。因此,如果尚未安装,请先安装。如果已安装自制软件,但brew update
自升级到优胜美地以来您还没有运行过,请首先执行此操作。还要确保您已安装XCode> = 6.1和最新的XCode命令行工具。brew doctor
会告诉您您是否做对了。
在下面添加您需要的Homebrew水龙头,以安装冲泡的php。如果这些存储库已被窃听,请跳过此步骤。如果不确定这些存储库是否已被窃听,请运行以下命令。最坏的情况下,您将无害Warning: Already tapped!
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
然后使用openssl安装curl:
$ brew install --with-openssl curl
然后使用刚安装并酿造的openssl的curl安装php:
$ brew install --with-homebrew-curl --with-httpd24 php55
安装任何您将需要的php扩展,例如。mcrypt
。
$ brew install php55-mcrypt
完成后,再次运行此命令:
$ php -i | grep "SSL Version"
并且您应该看到:
SSL Version => OpenSSL/1.0.2h
现在,重新测试您的应用程序,该应用程序将SSLRead() return error -9806
消失。