簡體   English   中英

PHP SOAP無法連接到SSL WSDL源

[英]PHP SOAP cannot connect to an SSL WSDL source

嘗試通過PHP / Win32與https:// WSDL源建立Soap連接,但不斷收到錯誤:

警告:SoapClient :: SoapClient()[soapclient.soapclient]:I / O警告:無法加載外部實體“https:// ...

如果我嘗試在本地保存WSDL並訪問它,那么SoapFault->faultstring屬性會顯示消息“此支持中沒有SSL支持”。

經過一些谷歌搜索,似乎PHP SOAP無法連接到HTTPS源。 但是HTTP沒問題。

這有解決方法嗎? 或者我可以安裝另一個SOAP版本/模塊嗎?

PHP5中對SOAP的HTTPS支持

如果您在嘗試使用SOAP時看到有關丟失https包裝器的錯誤消息(“無法找到包裝器”https“ - 您是否忘記在配置PHP時啟用它?”或“[HTTP] SSL支持不可用於此版本“),您尚未安裝SSL庫以支持安全事務。

  1. 在php.ini中取消注釋extension = php_soap.dll

  2. 在php.ini中取消注釋extension = php_openssl.dll

  3. 將ssleay32.dll和libeay32.dll復制到您的windows system32目錄

  4. 重啟apache,等等!

我最初的答案是: http//webponce.com/rants/2008/04/https-support-for-soap-in-php5-under-windows/

我有同樣的問題。 啟用了openSSL,cURL,啟動了一個SoapClient,其中包含了存儲認證的位置選項等等。嘗試了一切。

事實證明它在CLI模式下工作。 因此php_sapi = CLI。 由於我們幾乎總是將我們的webservices調用作為cronjob,Windows中的計划任務運行,這並不是一件壞事。 我真的很高興讓它工作!

更新:好的,當PHP作為Apache模塊運行時,它使用了來自Apache安裝的by opensll所需的庫libeay32.dll和ssleay32.dll。 在CLI中使用PHP時,使用PHP目錄/ install中的庫。 用PHP目錄中的dll覆蓋2個Apache dll就可以了。 它現在也在Apache下運行。 所以你的PHP版本應該與特定版本的工作dll相匹配。 當它仍然無法在Web界面中工作。 請檢查Apache是​​否沒有從系統定義路徑中先前指定的Windows系統目錄加載這些dll,該目錄由Apache選取。

我使用NuSOAP成功使用SSL和SOAP:

http://nusoap.sourceforge.net/

暫無
暫無

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

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