• ベストアンサー

phpでincludeをするときのパスについて

phpでincludeをするときのパスについて <?php include "/home/a.php"; . . . ?> のようにして、ルートディレクトリのファイルにアクセスしたいのですが、 /が先端にあるとファイルにアクセスできないのです。 どのようにしたらルートディレクトリのファイルをincludeできるのでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

ルートのフルパスを echo $_SERVER['DOCUMENT_ROOT']; で確認して見て下さい。 あなたのルートは/でないかも... あるいはa.phpの中に echo getcwd(); として実行させて、フルパスを確認してみる。

odiak
質問者

お礼

include $_SERVER["DOCUMENT_ROOT"]."/home/a.php"; としてみたらうまくいきました。 ありがとうございます。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

エラーの種類が解決の材料になりますのでエラー表示をそのまま書かれると適切な回答もしやすいです パーミッションがないのかファイルが見つからないのか

回答No.2

文章がわかりにくいんですが、階層が変わるとincludeできないってことでしょか。 だったら相対パスではなく絶対パスで指定してやればいいかと。

odiak
質問者

お礼

ローカルホスト上でも動かしたいので相対パスにしようとしました。 $_SERVER["DOCUMENT_ROOT"]を使うとうまくいきました。 ありがとうございました

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ルートディレクトリにアクセスしたいのかhomeディレクトリにアクセスしたいのかどちらでしょうか いずれにしてもディレクトリのアクセス権限とファイルの読み出し権限がないとどうしようもないです

関連するQ&A