3

サーバーにWordpressをインストールしてテストしようとしましたが、そのためには、現在のPHPバージョンを5.3にアップグレードする必要がありました。PHPをアップグレードしましたが、Purolatorシッピングモジュールが機能しなくなっていることがわかりました。ホストサポートによると、「purolator.php」ファイルには、新しいバージョンのPHPに必要なデータがありません。残念ながら、PHPバージョンを元に戻すことはできず、プログラマーは不在です。

これは私が私たちのウェブサイトのホストサポートチームから得ることができたエラーメッセージです:

tail /var/www/vhosts/phantomcables.com/statistics/logs/error_log -f 
[Thu Jul 19 08:34:28 2012] [error] [client 70.51.168.201] PHP Fatal 
error:  Class 'SoapClient' not found in 
/var/www/vhosts/phantomcables.com/httpdocs/shippings/purolator.php on line 
49, referer: https://phantomcables.com/index.php?dispatch=checkout.cart 

これらは40行目から72行目です。

function createPWSSOAPClient()
{
    /** Purpose : Creates a SOAP Client in Non-WSDL mode with the appropriate authentication and 
    *           header information
    **/
    //Set the parameters for the Non-WSDL mode SOAP communication with your Development/Production credentials
    //echo DIR_SHIPPING_FILES."estimatingservice.wsdl";

    $url = "https://webservices.purolator.com/PWS/V1/Estimating/EstimatingService.asmx";
    $client = new SoapClient( DIR_SHIPPING_FILES."estimatingservice.wsdl", 
                              array (
                                        'trace'         =>  true,
                                        'location'      =>  $url,
                                        'uri'           =>  "http://purolator.com/pws/datatypes/v1",
                                        'login'         =>  PRODUCTION_KEY,
                                        'password'      =>  PRODUCTION_PASS
                                    )
                            );

    //Define the SOAP Envelope Headers
    $headers[] = new SoapHeader ( 'http://purolator.com/pws/datatypes/v1', 'RequestContext', 
                                  array (
                                            'Version'           =>  '1.0',
                                            'Language'          =>  'en',
                                            'GroupID'           =>  'xxx',
                                            'RequestReference'  =>  'Rating Example'
                                       )
                                ); 
    //Apply the SOAP Header to your client                            
    $client->__setSoapHeaders($headers);

    return $client;
}

どんな助けでも大歓迎です。

4

5 に答える 5

4

サーバーにphp-soapパッケージがインストールされていないようです。タイプ

phpinfo();

コードで「Soap Client」が「有効」になっているかどうかを確認してください。そうでない場合、あなたのディストリビューションとパッケージ マネージャーはわかりませんが、私が使用している Fedora のコードは次のとおりです。

$ yum install php-soap

プログラマーやシステム管理者と一緒に行うことをお勧めします。何が起こるかわかりません。インストール前のバックアップも役に立ちます。

于 2012-07-19T15:15:50.457 に答える
3

追加する(または前にコメント文字を削除する)必要があります

extension=soap.so

ファイルに移動してからphp.ini、Webサーバーを再起動します。

php.iniファイルが見つからない場合は、次のページを作成してください。

<?php phpinfo();

そのファイルをブラウザにロードします。

一部のシステムでは、この設定は実際にはに存在しない場合がありphp.iniます。たとえば、Zend Serverを使用している場合、設定はに存在し/usr/local/zend/etc/conf.d/soap.iniます。

于 2012-07-19T15:16:26.070 に答える
1

そのため、古いバージョンの PHP に戻し、SOAP を再度有効にしました。どうやらそれが問題だったようですが、なぜ新しいバージョンの PHP で動作しなかったのかは不明です。

改めまして、皆様のご協力に感謝申し上げます。これは素晴らしいコミュニティです。

于 2012-07-20T17:17:10.540 に答える