2

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"); 
4

2 に答える 2

7

devサーバーにインストールされているPHPパッケージを確認し、Prodサーバーと比較します。fr2.php.net/manual/en/soap.setup.php

于 2011-05-27T15:52:05.530 に答える
0

これはおそらく、ライブ サーバー上の php の設定セットアップですが、php 上の SOAP で発生した一般的な問題は次のとおりです。

最初のことは、開発者と同等のライブでphpの許容メモリをチェックすることです(SOAPは大きく、メモリに悪いです)

ライブサーバーのphpは開発サーバーと同じバージョンですか、

ライブ サーバーは SOAP サーバーへのアクセスを許可されているか (認証が IP レベルで使用されている場合)

私が使用したSOAPパッケージの1つが私にこれを行ったので、バージョンの不一致があることがわかりました。最後に、PHPのデフォルト以外のSOAPライブラリを使用している場合は、どのSOAPライブラリを使用しているか教えてください。 :)

それについて考えてみると、石鹸をインストールする必要があります.phpがネイティブにサポートしているとは思いません.pearまたはpeclパッケージだと思います.開発でXAMPPまたはeasyPHPを使用している場合、これらはすべてphpに含まれています.

于 2011-05-27T15:53:25.797 に答える