CentOS 6、Apache 2.2、PHP 5.4 を搭載したクラウド サーバーがあり、Magento を搭載したサイトが 1 つあります。そして、Magento WebService を使用しようとすると、次のエラーが返されます。
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://******.com/dev/index.php/api/soap/index/?wsdl=1' : failed to load external entity "http://******.com/dev/index.php/api/soap/index/?wsdl=1"
こことグーグルで検索し、php.iniで多くの変更を試みましたが、すべての場合で成功しません。
場合によっては、これはサーバー側の問題であり、構成が悪いためです。
注¹: SOAP はサーバーにインストールされ、phpinfo() で SOAP が有効になっています。
注²: 別のサーバーでは正常に動作していました。
誰でもこれを解決する方法を知っていますか?
編集: サーバーは WHM/CPanel を使用し、Apache、PHP のインストールには EasyApache を使用します。そして、デフォルト構成を使用します。
Edit2: これは、SOAP とそれが返すエラーを使用する単純なサンプル コードです。
コード: (このコードの 1 行目は 9 行目、13 行目は "$cli = new SoapClient($api_url_v1);")
<?php
$api_url_v1 = "http://site.com/dev/api/soap/?wsdl=1";
$username = '*********';
$password = '*********';
$cli = new SoapClient($api_url_v1);
//retreive session id from login
$session_id = $cli->login($username, $password);
//call customer.list method
$result = $cli->call($session_id, 'customer.list', array(array()));
?>
エラー:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://site.com/dev/api/soap/?wsdl=1' : failed to load external entity "http://site.com/dev/api/soap/?wsdl=1" in /home/******/public_html/test_soap.php:13 Stack trace: #0 /home/******/public_html/test_soap.php(13): SoapClient->SoapClient('http://site...') #1 {main} thrown in /home/******/public_html/test_soap.php on line 13