simplexml_load_fileを利用してXMLをパースしていますが、"が入っているとエラーメッセージから読み取れますが、URL文字列内に"は利用されていません。
【ソース抜粋】
$gotten_items = simplexml_load_file('http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=XXXXXXX&start=1&query=XXXX');
var_dump($gotten_items);
と入力すると、Apacheのerror_logに以下のようなエラーが表示されます。
【error_log抜粋】
[Mon Jun 25 23:05:57 2007] [error] [client XXX.XXX.XXX.XXX] PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: I/O warning : failed to load external entity "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=XXXXXXX&start=1&query=XXXXXX" in XXXX
【実行方法による違い】
・コマンドラインから実行すると正しくされます。Apache経由(ブラウザー)の場合のみ上記エラーが表示されます。
・同一ソースについて、Fodora Core 5の別環境で動作させたところ、そちらのサーバーでは動作しました。
XMLのURL自体が不正であることはないことは確認しております。こういった事象の解決方法をご教授いただければと思います。
【環境】
Fodora Core 5
httpd-2.2.2-1.2
php-5.1.6-1.6
同様の構成の別サーバで動作することを考えると、PHPのプログラム的には問題ないのだと思います。
となると、phpまたはサーバの設定によって対象データが取得できないのではないかと思います。具体的には、php.iniの設定(そんな設定があるか未確認です)や、SELinuxが動作していれば、その辺りではないかと思います。
そこで、次のURLのような感じで、まずは、該当データをapacheにアクセスした際のPHPから取得できるかを確認してはいかがでしょうか?
http://q.hatena.ne.jp/1180553984
もし、この方法で動けば、とりあえずの対処法にもつながると思いますので。
明確な回答ではありませんが、何かの参考になれば。
SELinuxが動作していました。
解決しました。ありがとうございました。