Maison  >  Article  >  développement back-end  >  Comment réparer \"SSLRead() return error -9806\" dans les requêtes Curl POST sur OSX 10.10 Yosemite ?

Comment réparer \"SSLRead() return error -9806\" dans les requêtes Curl POST sur OSX 10.10 Yosemite ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 00:46:30669parcourir

How to Fix

Erreur SSLRead() dans Curl POST vers l'URL HTTPS sur OSX 10.10 Yosemite

Problème :

Après la mise à niveau vers OSX 10.10 Yosemite, les requêtes CURL POST vers les URL HTTPS échouent avec l'erreur :

Error Number:56
Error String:SSLRead() return error -9806

Cause :

Cette erreur se produit lorsque PHP est compilé avec une version de cURL qui utilise Secure Transport d'Apple sous Yosemite, et l'URL cible ne prend pas en charge SSLv3.

Solution :

Pour résoudre ce problème, installez un version de PHP qui utilise une version de cURL qui utilise OpenSSL au lieu de Secure Transport. Voici les étapes :

1. Vérifiez la version de cURL :

php -i | grep "SSL Version"

Si le résultat est « SecureTransport », passez à l'étape suivante.

2. Installez Homebrew :

brew install homebrew/core/homebrew
brew update

3. Appuyez sur Dépôts requis :

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

4. Installez cURL avec OpenSSL :

brew install --with-openssl curl

5. Installez PHP avec Homebrew cURL et OpenSSL :

brew install --with-homebrew-curl --with-httpd24 php55

6. Configurez Apache (si vous l'utilisez) :

Ajoutez la ligne suivante à /etc/apache2/httpd.conf :

LoadModule php5_module    /usr/local/opt/php55/libexec/apache2/libphp5.so

7. Démarrez PHP-FPM pour nginx (si vous l'utilisez) :

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. Installez les extensions PHP (facultatif) :

brew install php55-mcrypt

9. Vérifiez OpenSSL :

php -i | grep "SSL Version"

La sortie devrait afficher "OpenSSL/1.0.2h."

Maintenant, vos requêtes CURL POST vers les URL HTTPS devraient réussir sans l'erreur SSLRead() .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn