簡體   English   中英

PHP的SoapClient :: SoapClient失敗:SSL:握手已計時且無法啟用加密

[英]PHP SoapClient::SoapClient failing with: SSL: Handshake timed and Failed to enable crypto

以下所有內容均在Amazon EC2中運行

我一直在使用ExactTarget的API發送電子郵件已有幾個月了,它剛剛停止在我的質量檢查環境中工作。 以下所有代碼在我的生產環境中均能正常工作。 他們的SDK提供了一個名為ET_Client的類,該類擴展了內置的PHP SoapClient。 令人反感的代碼行是對

parent::__construct($wsdl, array('trace'=>1, 'exceptions'=>0,'connection_timeout'=>120)

這只是對SoapClient構造函數的調用。

我在日志文件中遇到的錯誤如下:

[2017年7月26日13:42:52美國/紐約] PHP警告:SoapClient :: SoapClient():SSL:握手在/var/www/vhosts/qa.devepc.com/repo/httpdocs/lib/中超時第74行上的vendor / exacttarget / fuel-sdk-php / ET_Client.php [2017年7月26日13:42:52 America / New_York] PHP警告:SoapClient :: SoapClient():無法在/ var / www中啟用加密/vhosts/qa.devepc.com/repo/httpdocs/lib/vendor/exacttarget/fuel-sdk-php/ET_Client.php,第74行[2017年7月26日13:42:52美國/紐約州] PHP警告:SoapClient :: SoapClient( https://webservice.exacttarget.com/ETFrameworkFault.xsd ):無法打開流:/var/www/vhosts/qa.devepc.com/repo/httpdocs/lib/vendor/exacttarget/中的操作失敗第74行的fuel-sdk-php / ET_Client.php [2017年7月26日13:42:52 America / New_York] PHP警告:SoapClient :: SoapClient():I / O警告:無法加載外部實體“ https: //var/www/vhosts/qa.devepc.com/repo/httpdocs/lib/vendor/exacttarget/fuel-sdk-php/ET_Client.php上的//webservice.exacttarget.com/ETFrameworkFault.xsd “ [ 2017年7月26日13:42:52 America / New_York]致命錯誤:SOAP錯誤:解析模式:無法從/ var /中的' https://webservice.exacttarget.com/ETFrameworkFault.xsd '導入模式www / vhosts / qa.devepc.com / repo / httpdocs / lib / vendor / exacttarget / fuel-sdk-php / ET_Client.php,第74行

我還發現,嘗試對SSL資源使用file_get_contents()時遇到類似的錯誤。

該命令:

php -r "var_dump(file_get_contents('https://google.com/'));"

給我以下內容。

[2017年7月26日18:06:13 UTC] PHP警告:file_get_contents():SSL:握手在第1行的命令行代碼中超時[26-Jul-2017 18:06:13 UTC] PHP警告:file_get_contents( ):無法在第1行的命令行代碼中啟用加密[26-Jul-2017 18:06:13 UTC] PHP警告:file_get_contents( https://google.com/ ):無法打開流:Command中的操作失敗第1行的行代碼

該問題可能是由於兩台服務器之間的細微差別造成的,但是,它一直工作到17年7月13日,並且自2月以來沒有對服務器進行任何更新。 另外,我昨天更新了整個服務器,PHP從5.6.25升級到5.6.30。 我的生產服務器位於5.6.22。

我試圖通過使用傳遞給stream_context_create選項來處理SSL流來解決此問題,但是錯誤仍然存​​在。

當我搜索“無法啟用加密”和“ SSL:握手超時”時,我發現在流上下文中使用curl的結果很多,但沒有發現與SoapClient相關的任何內容。 此外,我不想在ExactTarget Fuel SDK中編輯代碼,因為我不想讓供應商庫不受影響。

有沒有人遇到肥皂的這種或類似問題,如果是的話,有解決方案嗎?

提前致謝。

php.ini

default_socket_timeout=-1  

可能導致此錯誤。 嘗試將其設置為-1以外的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM