PHP SOAP SSL WSDL kaynağına bağlanamıyor

3 Cevap php

PHP/Win32 üzeri https:// WSDL kaynağına Sabun bağlantı yapmak, ama hata alıyorum tutmaya çalışıyorum:

Warning: SoapClient::SoapClient() [soapclient.soapclient]: I/O warning : failed to load external entity "https://...

Ben yerel WSDL kaydetmek ve daha sonra erişmek için çalışırsanız, SoapFault->faultstring özelliği mesaj "SSL desteği bu yapı mevcut değildir" vardır.

PHP SOAP bir HTTPS kaynağına bağlanmak olamaz gibi bazı google'da sonra görünüyor. HTTP olsa da, tamam.

Bunun için bir çözüm var mı? Ya da ben yükleyebilirsiniz alternatif SOAP versiyon / modülü var mı?

3 Cevap

HTTPS support for SOAP in PHP5

"? - Eğer PHP yapılandırıldığında etkinleştirmek için unutmak mı" ya da "[HTTP] SSL desteği mevcut değildir (https" sarıcı bulmak için açılamıyor "SOAP kullanmaya çalışırken eksik https Sarmalayıcılar ilgili hata iletileri alıyorsanız Bu yapı "), güvenli hareketleri desteklemek için SSL kütüphaneleri yüklü değildir.

  1. Uncomment extension=php_soap.dll in your php.ini

  2. Uncomment extension=php_openssl.dll in your php.ini

  3. Copy ssleay32.dll and libeay32.dll to your windows system32 directory

  4. Reboot apache, et işte!

Ben aslında bu yanıt bulundu: http://webponce.com/rants/2008/04/https-support-for-soap-in-php5-under-windows/

Ben aynı problem vardı. openSSL, cURL etkin olduğunu, vs vs depolanan sertifikalı bölgeye seçeneğiyle, bir SoapClient başlattı. çalıştı her şeyi.

Turns out it does work in CLI mode. Thus php_sapi = CLI. As we almost always run our webservices calls as a cronjob, scheduled task in Windows, this is not really a bad thing. I was really glad to get it working!

Update: Okay, turns out when PHP is running as an Apache module, it uses the by opensll required libraries libeay32.dll and ssleay32.dll from the Apache install. When using PHP in CLI is uses the libraries from the PHP directory/install. Overwriting the 2 Apache dlls with the dlls from the PHP directory did the trick. It now also runs under Apache. So your PHP version should match with the working dlls for the specific version. When it still doesn't work in the web interface. Please check that Apache isn't loading these dlls from a Windows System directory, specified earlier in your system defined path, which is picked up by Apache.

Ben NuSOAP kullanarak SSL ve SOAP ile başarı elde ettik:

http://nusoap.sourceforge.net/