PHP SoapClient не работает - нет ошибки - PullRequest
2 голосов
/ 27 мая 2011

У меня есть код, который подключается к службе рассылки через SOAP.Это работает без проблем на нашем сервере разработки, но на нашем живом сервере это не работает вообще.Это не возвращает никаких ошибок;просто пустая белая страница.Я поместил в код несколько error_logs и нашел, где именно он перестает работать - в строке, создающей новый SoapClient.Есть ли какая-то конфигурация сервера, которую нужно установить?Наш код идентичен для dev и prod, поэтому единственное, что я могу понять, это проблема с сервером.(Обратите внимание, что первая часть кода ниже была предоставлена ​​службой рассылки, а не написана мной.)

# bronto API session/connection setup
ini_set("soap.wsdl_cache_enabled", "0");
date_default_timezone_set('America/Chicago');

$wsdl = "https://api.bronto.com/v4?wsdl";
$url = "https://api.bronto.com/v4";

/*error log statements up to this point return what is expected; 
  an error log after the following line (starting with $client = new SoapClient) 
  does not get triggered at all. */

$client = new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8')); 
$client->__setLocation($url);

$token = "XXX";
$sessionId = $client->login(array("apiToken" => $token))->return;
$client->__setSoapHeaders(array(new SoapHeader("http://api.bronto.com/v4",
        'sessionHeader',
         array('sessionId' => $sessionId))));

Я также пробовал что-то подобное, чтобы явно увидеть любые ошибки, но не повезло - все женичего в журнале ошибок.

try {  
  $client = @new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8')); 
} 
  catch (SoapFault $E) {  
    error_log($E->faultstring) ;
}  
error_log("ok"); 

Ответы [ 2 ]

5 голосов
/ 27 мая 2011

Я бы проверил установленные пакеты PHP на сервере dev и сравнил с сервером Prod.fr2.php.net/manual/en/soap.setup.php

0 голосов
/ 27 мая 2011

Это более чем просто настройка для php на живом сервере, но вот общие проблемы, которые у меня были с SOAP на php,

Прежде всего, проверьте разрешенную память на php на liveсравним с dev (SOAP большой и плохой для памяти)

Является ли php на живом сервере той же версией, что и dev-сервер,

Является ли живой сервер авторизованным для доступа к серверу SOAP (если аутентификация используется на уровне IP)

, так как один из пакетов SOAP, которые я использовал, сделал это для меня, я обнаружил, что было несовпадение версий, но не в последнюю очередь, вы можете сказать нам, что такое библиотека SOAP, если таковая имеетсядругие, тогда php использует по умолчанию ваше использование, поэтому мы можем помочь, так как ваш код выглядит хорошо :)

подумав об этом, вы должны установить мыло, я не думаю, что php изначально поддерживает его, я думаю, что это пакет груши или pecl, и если вашиспользуя XAMPP или easyPHP на dev, все они оба включены в php.

...