Я пытаюсь запустить PHP SoapClient и SoapServer (для Magento) за прокси-сервером, где разрешен только один сетевой трафик через прокси-сервер.
У меня это работает с клиентом:
$client = new SoapClient('https://www.domain.co.uk/api/v2_soap/?wsdl=1', [
'soap_version' => SOAP_1_1,
'connection_timeout' => 15000,
'proxy_host' => '192.168.x.x',
'proxy_port' => 'xxxx',
'stream_context' => stream_context_create(
[
'ssl' => [
'proxy' => 'tcp://192.168.x.x:xxxx',
'request_fulluri' => true,
],
'http' => [
'proxy' => 'tcp://192.168.x.x:xxxx',
'request_fulluri' => true,
],
]
),
]);
Это работает как ожидалось - весь трафик проходит через прокси-сервер.
Однако, с классом SoapServer, я не могу решить, как заставить его отправлять весь исходящий трафик через SoapServer. Похоже, что пытается загрузить http://schemas.xmlsoap.org/soap/encoding/ непосредственно из сети, а не через прокси-сервер, вызывающий "не импортировать схему из" http://schemas.xmlsoap.org/soap/encoding/ '"ошибка, которую нужно выбросить.
Я попытался добавить запись файла hosts для schemas.xmlsoap.org в 127.0.0.1 и разместить этот файл локально, но я все еще получаю ту же проблему.
Есть ли что-то, что мне не хватает?