Maison > développement back-end > tutoriel php > 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
Libérer: 2024-11-02 00:46:30
original
817 Les gens l'ont consulté

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
Copier après la connexion

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"
Copier après la connexion
Copier après la connexion

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

2. Installez Homebrew :

brew install homebrew/core/homebrew
brew update
Copier après la connexion

3. Appuyez sur Dépôts requis :

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/php
Copier après la connexion

4. Installez cURL avec OpenSSL :

brew install --with-openssl curl
Copier après la connexion

5. Installez PHP avec Homebrew cURL et OpenSSL :

brew install --with-homebrew-curl --with-httpd24 php55
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

8. Installez les extensions PHP (facultatif) :

brew install php55-mcrypt
Copier après la connexion

9. Vérifiez OpenSSL :

php -i | grep "SSL Version"
Copier après la connexion
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal