OSX 10.10 Yosemite の HTTPS URL への Curl POST での SSLRead() エラー
問題:
OSX 10.10 Yosemite にアップグレードした後、HTTPS URL への CURL POST リクエストが次のエラーで失敗します:
Error Number:56 Error String:SSLRead() return error -9806
原因:
このエラーは、PHP がYosemite で Apple の Secure Transport を使用する cURL のバージョンでコンパイルされており、ターゲット URL は SSLv3 をサポートしていません。
解決策:
この問題を解決するには、 Secure Transport の代わりに OpenSSL を使用する cURL のバージョンを使用する PHP のバージョン。手順は次のとおりです。
1. cURL バージョンを確認します:
php -i | grep "SSL Version"
出力が「SecureTransport」の場合は、次の手順に進みます。
2. Homebrew をインストールします:
brew install homebrew/core/homebrew brew update
3. [必要なリポジトリ] をタップします:
brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/php
4. OpenSSL を使用して cURL をインストールします:
brew install --with-openssl curl
5. Homebrew cURL と OpenSSL を使用して PHP をインストールします:
brew install --with-homebrew-curl --with-httpd24 php55
6. Apache を構成します (使用している場合):
次の行を /etc/apache2/httpd.conf に追加します:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
7. nginx 用の PHP-FPM を開始します (使用している場合):
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. PHP 拡張機能をインストールします (オプション):
brew install php55-mcrypt
9. OpenSSL を確認します:
php -i | grep "SSL Version"
出力には「OpenSSL/1.0.2h」と表示されるはずです。
これで、HTTPS URL への CURL POST リクエストは SSLRead() エラーなしで成功するはずです。 .
以上がOSX 10.10 Yosemite での Curl POST リクエストの「SSLRead() return error -9806」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。