Попытка сделать подключение Soap к источнику https: // WSDL через PHP / Win32, но продолжать получать ошибку:
Предупреждение: SoapClient :: SoapClient () [soapclient.soapclient]: предупреждение ввода-вывода: не удалось загрузить внешний объект «https: // …
Если я попытаюсь сохранить WSDL локально и получить к нему доступ, то в SoapFault->faultstring
сообщение «Поддержка SSL в этой сборке недоступна».
После некоторого Googling, похоже, PHP SOAP не может подключиться к источнику HTTPS. Однако HTTP в порядке.
Есть ли обходной путь для этого? Или есть альтернативная версия / модуль SOAP, которую я могу установить?
Поддержка HTTPS для SOAP в PHP5
Если вы видите сообщения об ошибках об отсутствующих https-оболочках при попытке использовать SOAP («Не удалось найти оболочку https» – вы забыли включить ее при настройке PHP? »Или« [HTTP] Поддержка SSL недоступна в эта сборка "), вы не установили SSL-библиотеки для поддержки безопасных транзакций.
Uncomment extension = php_soap.dll в php.ini
Uncomment extension = php_openssl.dll в php.ini
Скопируйте файл ssleay32.dll и libeay32.dll в директорию system32 для windows
Перезагрузите apache, et voila!
Первоначально я нашел этот ответ по адресу: 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, он использует открытые библиотеки libeay32.dll и ssleay32.dll из установки Apache. При использовании PHP в CLI используются библиотеки из каталога PHP / install. Перезапись 2-х патчей Apache с dll из каталога PHP сделала трюк. Теперь он также работает под Apache. Таким образом, ваша версия PHP должна соответствовать работающим dll для конкретной версии. Когда он все еще не работает в веб-интерфейсе. Убедитесь, что Apache не загружает эти DLL из каталога системы Windows, указанного ранее в пути к вашей системе, который выбран Apache.
У меня был успех с SSL и SOAP с помощью NuSOAP: