[PHP-users 29422] PHP4.4.2へのバージョンアップについて

ken zuiun_no_chaya @ yahoo.co.jp
2006年 6月 15日 (木) 13:52:09 JST


小池@茶谷と申します。

Webサーバーを
現サーバ Windows 2000 Server (SP4) IIS5.0 PHP4.3.1 から
新サーバ Windows 2003 Server (SP1) IIS6.0 PHP4.4.2 へ移行しようとしてお
ります。

現サーバではphpで作成されたプログラムが多くあり、
そのまま新サーバに移行したらほとんどのものは正常に動作したのですが、
_SERVER['PATH_TRANSLATED']
を使用している部分とfile_get_contents関数(ファイルパスをhttp://から指定
している場合)を使用している部分で不具合が発生しました。

1つ目の_SERVER['PATH_TRANSLATED']とは
「バーチャルからリアルへのマッピングがなされた後の現在のスクリプトファイ
ルシステム上のパス」
という値が取得できるという認識でいたのですが、
新サーバではルートまで?の物理パスしか取得できませんでした。

また2つ目のfile_get_contents関数を使用していて且つ、
ファイルのパスの指定の仕方がhttp://から始まるような指定だと
ブラウザのエラーで「ページが表示できません。」「サーバーが見つからないか、DNS エラーです。」
というエラーが表示されます。

試しに新サーバ(Windows2003 SP1 IIS6.0)で色々なPHPのバージョンで試した結
果、以下のようになりました。(各バージョンのphp.iniはphp.ini-distを未修
正の状態で確認しました)

【PHPのバージョン | 1つ目の問題 | 2つ目の問題】
PHP4.3.1  | ○ | ○
PHP4.3.10 | ○ | ○
PHP4.3.11 | × | ○
PHP4.4.0  | × | ○
PHP4.4.1  | × | ○
PHP4.4.2  | × | ×
※○は問題無し、×は値がルートまでしか取得できなかった、又はブラウザのエ
ラーが表示されるという意味です。


1つ目の問題ではPHP4.3.11から_SERVER['PATH_TRANSLATED']の仕様が変更された
ように見えたので、4.3.11のリリースノートを見てみましたが、該当すると思わ
れるものは見つけることができませんでした。

また、file_get_contentsについても相対パスでの指定であれば
問題なく動作するのですが、httpから記述すると上に記載したようにエラーにな
ります。この問題についてはphp4.4.1までは正常に動作していることから4.4.2
のリリースノートを参照したのですが、該当するような箇所は見つけることがで
きませんでした。


_SERVER['PATH_TRANSLATED']について、php.ini以外の設定等で、
正しい値が取得できるようになるのか、
file_get_contents関数でhttpからパラメータを指定しても問題なく
値が取得できるようになるか、
またはこれらの問題を解決できそうな参考サイトをご存知の方がいらっしゃいま
したらお教え下さい。



--------------------------------------
Let's start Yahoo! Auction  -  Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/


PHP-users メーリングリストの案内