« ブラウザ別EUC-JP補助漢字などのサポート状況(2) | トップページ | EmEditorと補助漢字 »

2008/01/12

【PHPのとあるエラー】Warning: fopen(): URL file-access is disabled in the server configuration in



AmazonのWebサービスを使ったサイト(PHP)の構築のために、海外のレンタルサーバでfopen関数を使って、XMLデータを取得していました。もちろん、AmazonのXMLサーバが混んでいて、うまくデータを取得できない場合も考えて、エラー処理を入れていました。

エラー処理では、そのような場合には、http://www.amazon.co.jpの該当asinページに飛ばす(redirectする)ようにしていました。ただ、ログに残したり、メールで通知が来るようにまではしていませんでした。そのため、いつのまにかfopenに常に失敗している事態が発生していることに最近まで気づいていませんでした。

ところが、最近になって、常にエラー処理の方が行われており正常な処理がされていないことに気づきました。関数名の前の「@」を取って、確認してみると、

Warning: fopen(): URL file-access is disabled in the server configuration in ・・・

エラーの内容から、allow_url_fopenの設定がいつの間にか変えられていて、fopenでリモートのファイルをオープンすることが禁止されていることが想像できました。「やられた」と思いました。恐らく、レンタルサーバの事業者から事前に連絡はなかったと思います。(スパムが大量すぎるので、英語の件名のメールの場合は、ウイルスバスターのスパム判定をほぼ無条件に信じて削除して待っているので、スパムと間違って削除した可能性はありますが・・・。)

セキュリティを考慮してサーバの設定をいじくるのはレンタルサーバ事業者としてありうることでしょうが、事後でも連絡してほしいものです。おかげで、正常処理されていればサーチエンジンにしっかりと登録されているはずのページが、amazonへ単純にリダイレクトしているだけの意味のないページとして判断され、サーチエンジンから登録の多くが消えてしまっていました。

ただ、過去の記事にも書いたように、海外のレンタルサーバ事業者は絶対に「I'm sorry.」とは言わないし、文句を言ってもストレスがたまるだけです(早く乗り換えようと思っているのですが、安さとディスクスペースの多さに負けて、なかなか乗り換えられないでいます)。だから、今回は黙って対処することにしました。

PHPの本家のfopenのページを見てみると、すぐに解決策は見つかりました。「Luiz Miguel Axcar (lmaxcar at yahoo dot com dot br)」さんのユーザーコメントにcurlを使った代替策が載っていました。この代替策で無事解決できました。

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/17670738

この記事へのトラックバック一覧です: 【PHPのとあるエラー】Warning: fopen(): URL file-access is disabled in the server configuration in:

コメント

コメントを書く