PHP SOAP не может подключиться к источнику SSL WSDL - PullRequest
6 голосов
/ 04 января 2010

Попытка установить Soap-соединение с источником https: // WSDL через PHP / Win32, но постоянно получаю сообщение об ошибке:

Предупреждение: SoapClient :: SoapClient () [soapclient.soapclient]: предупреждение ввода / вывода : не удалось загрузить внешнюю сущность "https: //...

Если я пытаюсь сохранить WSDL локально и получить к нему доступ, свойство SoapFault->faultstring выдает сообщение «Поддержка SSL недоступна в этой сборке».

После некоторого поиска в Google кажется, что PHP SOAP не может подключиться к источнику HTTPS. Хотя с HTTP все в порядке.

Есть ли обходной путь для этого? Или я могу установить альтернативную версию / модуль SOAP?

Ответы [ 3 ]

15 голосов
/ 28 марта 2011

Поддержка HTTPS для SOAP в PHP5

Если вы видите сообщения об ошибках об отсутствующих оболочках https при попытке использовать SOAP («Не удается найти упаковщик« https »- вы забыли включить его при настройке PHP?» Или «Поддержка HTTP [HTTP] недоступно в этой сборке »), вы не установили библиотеки SSL для поддержки безопасных транзакций.

  1. Раскоментируйте расширение = php_soap.dll в вашем php.ini

  2. Раскоментируйте расширение = php_openssl.dll в вашем php.ini

  3. Копия ssleay32.dll а также libeay32.dll в каталог windows32 вашей системы

  4. Перезагрузите Apache, et voila!

Первоначально я нашел этот ответ по адресу: http://webponce.com/rants/2008/04/https-support-for-soap-in-php5-under-windows/

1 голос
/ 06 августа 2010

У меня была такая же проблема. openSSL, cURL были включены, инициировали SoapClient с возможностью определения местоположения для сохраненных сертификатов и т. д., и т. д. все перепробовал

Оказывается, он работает в режиме CLI. Таким образом, php_sapi = CLI. Поскольку мы почти всегда выполняем наши вызовы веб-сервисов как запланированное задание в Windows, это не так уж плохо. Я был очень рад заставить его работать!

Обновление: Хорошо, оказывается, когда PHP работает как модуль Apache, он использует необходимые библиотеки by opensll libeay32.dll и ssleay32.dll из установки Apache. При использовании PHP в CLI используются библиотеки из каталога PHP / install. Перезапись 2 библиотек Apache с помощью библиотек из каталога PHP сделала свое дело. Теперь он также работает под Apache. Таким образом, ваша версия PHP должна соответствовать рабочим dll для конкретной версии. Когда это все еще не работает в веб-интерфейсе. Пожалуйста, убедитесь, что Apache не загружает эти библиотеки из системного каталога Windows, указанного ранее в вашем системном пути, который выбирается Apache.

0 голосов
/ 04 января 2010

У меня был успех с SSL и SOAP с использованием NuSOAP:

http://nusoap.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...