我有一个php Soap webservice和一个需要调用它的perl脚本。
但它返回错误
Parsing WSDL: Couldn't load from 'http://xxxxxx:8888/index.php/backup/index' :
failed to load external entity "http://xxxxxx:888/index.php/backup/index"
xxxxx是我服务器的动态主机名。
如果我使用
从localhost调用web服务$client=new SoapClient('http://localhost:8888/index.php/backup/index',array('trace' => 1));
如果工作正常,但如果我尝试
$client=new SoapClient('http://xxxx:8888/index.php/backup/index',array('trace' => 1));
它给了我这个错误。
所以问题是远程脚本使用他的主机名调用webservice,而web服务无法解决这个问题....我该如何解决这个问题?
答案 0 :(得分:0)
发现问题。它在yii类CWebService中。 似乎无法解析本地主机的名称......如果从外部主机调用它将始终失败。
我解决了它将名称强制转换为/ etc / host中服务器的ip,如
127.0.0.1 www.website.com