Ich habe diesen Fehler gesehen, als PHP mit einer Version von cURL kompiliert wurde, die Apples Secure Transport unter Yosemite verwendet und das Ziel der URL-Anfrage SSLv3 nicht unterstützt (was wahrscheinlich aufgrund der POODLE-Sicherheitsanfälligkeit deaktiviert wurde ). Was ist die Ausgabe dieses Befehls?
$ php -i | grep "SSL Version"
Ich vermute, Sie werden das sehen:
SSL Version => SecureTransport
Sie können dies überwinden, indem Sie eine Version von PHP installieren, die eine Version von cURL verwendet, die OpenSSL anstelle von SecureTransport verwendet. Dies ist am einfachsten mit Homebrew zu tun . Installieren Sie das also zuerst, wenn Sie es noch nicht haben. Wenn Homebrew installiert ist, Sie aber brew update
seit dem Upgrade auf Yosemite nicht mehr ausgeführt haben , tun Sie dies zuerst. Stellen Sie außerdem sicher, dass Sie XCode> = 6.1 und die neuesten XCode-Befehlszeilentools installiert haben. brew doctor
Ich werde Ihnen sagen, ob Sie alles richtig gemacht haben.
Fügen Sie die Homebrew-Taps hinzu, die Sie benötigen, um gebrautes PHP zu installieren. Überspringen Sie diesen Schritt, wenn diese Repos bereits getippt sind. Wenn Sie nicht sicher sind, ob diese Repos bereits getippt sind, führen Sie einfach die folgenden Befehle aus. Im schlimmsten Fall erhalten Sie eine harmloseWarning: Already tapped!
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/php
Dann installieren Sie curl mit openssl:
$ brew install --with-openssl curl
Dann installiere PHP mit der Curl, die du gerade installiert und gebraut hast.
$ brew install --with-homebrew-curl --with-httpd24 php55
Wenn Sie Apache verwenden, stellen Sie sicher, dass LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
Sie /etc/apache2/httpd.conf
Apache hinzufügen und neu starten.
Wenn Sie Apache 2.4 nicht verwenden, können Sie es --with-httpd24
aus dem obigen Befehl entfernen .
Wenn Sie Nginx verwenden, befolgen Sie die Anweisungen zum Starten von fpm:
So starten Sie php-fpm beim Start:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
Installieren Sie alle PHP-Erweiterungen, die Sie benötigen, z. mcrypt
.
$ brew install php55-mcrypt
Nachdem Sie fertig sind, führen Sie dies erneut aus:
$ php -i | grep "SSL Version"
Und du solltest sehen:
SSL Version => OpenSSL/1.0.2h
Und jetzt testen Sie Ihre Anwendung erneut und die SSLRead() return error -9806
sollte verschwinden.