![XMLReader が外部 XML を開くときにタイムアウトする](https://rvso.com/image/632733/XMLReader%20%E3%81%8C%E5%A4%96%E9%83%A8%20XML%20%E3%82%92%E9%96%8B%E3%81%8F%E3%81%A8%E3%81%8D%E3%81%AB%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E3%81%99%E3%82%8B.png)
外部 XML (存在し、直接リンクを配置するとブラウザで確認できます) を開こうとするとタイムアウトが発生します。
XMLReader がインストールされ、オンになっていることを確認しており、ローカル XML を呼び出すと機能します (テスト済みで、期待どおりに動作します)。
しかし、外部ソース (別のドメイン) から同じ XML を取得しようとすると、次の結果が表示されます (ここではドメインと IP はマスクされています)。
[Mon May 12 20:03:44 2014] [error] [client xxxxxx] PHP Warning: XMLReader::open(http://myotherdomain/data.xml): failed to open stream: Connection timed out in /var/www/html/mysite/xmlreader.php on line 29
[Mon May 12 20:03:44 2014] [error] [client xxxxxx] PHP Warning: XMLReader::open(): Unable to open source data in /var/www/html/mysite/xmlreader.php on line 29
29行目は次のことを指していますopen()
:
if (!$reader->open("http://myotherdomain/data.xml"))
私のサーバーはCentOS 6.5、Apache 2.2.15、PHP 5.4.25です
何が問題なのでしょうか? なぜタイムアウトになるのでしょうか?(これは私が試したすべての外部 XML で発生します)
答え1
問題が見つかりました。それはファイアウォールのポート 80 に関連していました...
サーバーから外部への接続が許可されなかったため、結局のところ XMLReader とは関係なく、ファイアウォールに関連する別の問題でした。