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!