【移転前のphpバージョン】=>5.1.6
【移転後のphpバージョン】=>5.3.6
エラー内容:
Warning: fopen(http:/*****): failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error in /var/www/html/*****/test.php on line 12
ちなみにtest.phpの12行目は
$fq = fopen($url, "r") or die("error !!");
としています。
またphpでこれまで「<?」と省略して書きだしていたものが「<?php」と書かないと動作しなくなってしまったのはなぜでしょうか?
よろしくお願いいたします。
バージョンの違いではなく、サーバー管理者の意向によって設定が異なるだけの話です
サーバーによっては設定を独自に変更できる場合もありますが、まったくもって受け付けてもらえない場合もありますので、まずは新しいサーバーの管理者(社)に相談してみないことには先には進めないでしょう
以下に、設定に関するマニュアルページと新しいほうのサーバーがどうして今のような状態なのかについての理由を示しておきますので、独自に設定を行う場合にはそれぞれ参照し、よくよく検討の上で設定するようにしてください
(1)fopenでURL使用の許可に関するキーワード:php.iniのallow_url_fopen
外部へのアクセスを制限することでサーバー負荷を抑えたり、他のサーバーへの攻撃の足がかりにされたりすることを防ぐなどの理由で許可していない場合も多い
http://www.php.net/manual/ja/features.remote-files.php
http://www.php.net/manual/ja/filesystem.configuration.php#ini.allow-url-fopen
fopen でURLの利用が禁じられている場合の対処法は特に無いので、サーバー移転前に確認しておくべき事項の1つとも言えます
(2)短縮タグ(<?)の許可に関するキーワード:short_open_tag
短縮タグではXML文書のようなものまでphpだと間違って認識してしまうため、短縮タグを禁じているサーバーは多い
コメント(1件)
PHPの設定変更権限がないのでしたら、cURLを使って回避しましょう。
http://php.net/manual/ja/curl.examples-basic.php