phpのinclude関数について、エラーが発生します。

あるphpで構築されたソフトを、Windowsのローカル環境(xamppの最新版を使用)で構築しなくてはいけません。このphpソース内には 例:include("/www/PHP/T/4-Menu.php");といった文がありまして、以下のエラーが発生しています。
エラー内容↓
Warning: include(/www/PHP/T/4-Menu.php) [function.include]: failed to open stream: No such file or directory in D:\xampp\htdocs\WWW\htdocs\index.php on line 5
Warning: include() [function.include]: Failed opening '/www/PHP/T/4-Menu.php' for inclusion (include_path='.;C:\php5\pear') in D:\xampp\htdocs\WWW\htdocs\index.php on line 5
今まで調べたところ、Windows環境下ではUnixのパス(ここではinclude内のファイル名の先頭のスラッシュ/)を、ApacheのDocumentRootと正しく認識できないそうです。
phpソースに修正を加えるとなると、大変な労力が必要となります。そこで、例えばphp.iniやapacheの設定などを、変更する方法ですむ方法は、あるのでしょうか?
参考になるページなどなど、有識者の方、どうぞよろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/12/09 03:58:21
  • 終了:2007/12/16 04:00:04

回答(1件)

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252007/12/09 14:52:59

ポイント60pt

まず質問者が考えている「include内のファイル名の先頭のスラッシュ/がApacheのDocumentRootと認識するはず」の部分は誤解です。その認識は間違っています。includeの引数の先頭のスラッシュはApacheのDocumentRootではなくファイルシステムのルートディレクトリに対応するものです。

そして、include のパス区切り文字は / でも \ でもどちらでも問題なく動きます。


質問内では 4-Menu.php が置かれている場所の説明が抜けていますが、D:\xampp\htdocs\www\PHP\T\4-Menu.php 等にでも置いているのでしょうか?だとしたらそれは間違いです。

xamppがDドライブにインストールされているのなら、恐らく D:\www\PHP\T\4-Menu.php に置くことでソースは弄らずに正常にインクルードできるでしょう。

http://q.hatena.ne.jp/answer

id:staych

D:\xampp\htdocs\www\PHP\T\4-Menu.php に置いていました。移動後、正常に動作しましました。ありがとうございました!

2007/12/09 23:05:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません