VAT 有効性チェックに 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 台のマシンはすべて、同じ OS (Ubuntu 12.04) と PHP (5.3.10) バージョンを実行しています。パッケージ php-soap (0.12.0-2) はそれらすべてにインストールされています。実動サーバーから wsdl ファイルを wget できます。この問題はすでに数日間続いているため、一時的なものではありません。
wsdl をダウンロードして、リモート http パスの代わりにローカル ファイル パスを使用すると、運用サーバーでも機能します。ただし、それは良い解決策ではありません。
他に何を確認できますか?