Home > Backend Development > PHP Tutorial > How to Fix \'SSLRead() return error -9806\' in Curl POST Requests on OSX 10.10 Yosemite?

How to Fix \'SSLRead() return error -9806\' in Curl POST Requests on OSX 10.10 Yosemite?

Patricia Arquette
Release: 2024-11-02 00:46:30
Original
736 people have browsed it

How to Fix

SSLRead() Error in Curl POST to HTTPS URL on OSX 10.10 Yosemite

Issue:

After upgrading to OSX 10.10 Yosemite, CURL POST requests to HTTPS URLs are failing with the error:

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

Cause:

This error occurs when PHP is compiled with a version of cURL that uses Apple's Secure Transport under Yosemite, and the target URL does not support SSLv3.

Solution:

To resolve this issue, install a version of PHP that uses a version of cURL that uses OpenSSL instead of Secure Transport. Here are the steps:

1. Check cURL Version:

php -i | grep "SSL Version"
Copy after login
Copy after login

If the output is "SecureTransport," proceed to the next step.

2. Install Homebrew:

brew install homebrew/core/homebrew
brew update
Copy after login

3. Tap Required Repositories:

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/php
Copy after login

4. Install cURL with OpenSSL:

brew install --with-openssl curl
Copy after login

5. Install PHP with Homebrew cURL and OpenSSL:

brew install --with-homebrew-curl --with-httpd24 php55
Copy after login

6. Configure Apache (if using):

Add the following line to /etc/apache2/httpd.conf:

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

7. Start PHP-FPM for nginx (if using):

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
Copy after login

8. Install PHP Extensions (optional):

brew install php55-mcrypt
Copy after login

9. Verify OpenSSL:

php -i | grep "SSL Version"
Copy after login
Copy after login

The output should show "OpenSSL/1.0.2h."

Now, your CURL POST requests to HTTPS URLs should succeed without the SSLRead() error.

The above is the detailed content of How to Fix \'SSLRead() return error -9806\' in Curl POST Requests on OSX 10.10 Yosemite?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template