Fehlerbeschreibung
$client = new SoapClient('http://beispiel.de/index.php/api/v2_soap/?wsdl'); $sessionId = $client->login('benutzer', 'geheim');
Beim Versuch eine API-Verbindung mit Magento herzustellen, wird von SoapClient der folgende Fehler gemeldet:
WSDLSOAP-ERROR: Parsing WSDL: Couldn't load from ... : failed to load external entity ...
Mögliche Ursache
Der Server kann seinen eigenen Namen nicht auflösen. Als Bestätigung dieser Ursache, kann der Apache-Server neu gestartet werden:
/etc/init.d/apache2 restart
Wird beim (erfolgreichen) Start von Apache die nachfolgende Warnung ausgegeben, liegt die o. g. Ursache vor:
Could not reliably determine the server's fully qualified domain name
Lösung
An Stelle der Domain kann in der API-URL die IP des Servers verwendet werden:
$client = new SoapClient('http://123.45.67.89/index.php/api/v2_soap/?wsdl'); $sessionId = $client->login('benutzer', 'geheim');
Die bessere und sauberere Lösung wäre der Eintrag der Domain in der hosts-Datei auf dem Server (die Datei befindet sich unter /etc/hosts):
123.45.67.89 beispiel.de
Anschließend sollte Apache neu gestartet werden.
Weiterlesen: