在OSX 10.10 Yosemite 上Curl POST 到HTTPS URL 時出現SSLRead() 錯誤
問題: >
升級到OSX 10.10 Yosemite 後,對HTTPS URL 的CURL POST 請求失敗,並出現錯誤:Error Number:56 Error String:SSLRead() return error -9806原因:
當PHP 運行時會發生錯誤使用在此Yosemite 下使用Apple 安全傳輸的cURL 版本編譯,目標網址 不支援SSLv3。
解決方案:要解決此問題,請安裝使用 cURL 版本的 PHP 版本,該版本使用 OpenSSL 而不是安全傳輸。步驟如下:
1.檢查 cURL 版本:如果輸出為“SecureTransport”,請繼續下一步。
php -i | grep "SSL Version"2.安裝自製程式:
brew install homebrew/core/homebrew brew update3.點選所需的儲存庫:
brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/php4。使用 OpenSSL 安裝 cURL:
brew install --with-openssl curl5。使用 Homebrew cURL 和 OpenSSL 安裝 PHP:
brew install --with-homebrew-curl --with-httpd24 php556.設定 Apache(如果使用):
將以下行加入/etc/apache2/httpd.conf:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so7.為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() 回傳錯誤 -9806」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!