我正在使用SOAP Web服务进行增值税有效性检查。 它在我的工作站和测试服务器上运行良好,但在生产服务器上运行不正常。它会抛出异常:
$ php -a
Interactive shell
php > $client = new \SoapClient('http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl', array('exceptions' => true));
PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl' : failed to load external entity "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"
in php shell code on line 1
PHP Warning: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl' : failed to load external entity "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"
in php shell code:1
Stack trace:
#0 php shell code(1): SoapClient->SoapClient('http://ec.europ...', Array)
#1 {main}
thrown in php shell code on line 1
所有3台机器都运行相同的操作系统(Ubuntu 12.04)和PHP(5.3.10)版本。所有这些软件包都安装了php-soap软件包(0.12.0-2)。 我可以从生产服务器中获取wsdl文件。 这个问题已经持续了好几天了,所以这不是暂时的。
如果我下载wsdl并使用本地文件路径而不是远程http路径,它也适用于生产服务器。然而,这不是一个好的解决方案。
知道我还能检查什么吗?