[PHP-users 34416] Re: Include ファイルの相対パスと絶対パスについて

藤本悟司 satoshi @ try-square.co.jp
2009年 3月 12日 (木) 11:45:14 JST


藤本と申します。

パスの違いというのなら、No such fileならともかく、
Permission deniedは、妙ですねえ。
PHP環境以外の原因も疑ってみましょう。
各ディレクトリの、rとx属性はどのようになっているでしょうか。

それとか、is_file()やis_readable()などで、当該スクリプトから見て
どのようにその(includeされる)ファイルが認識されているか、
いろいろ実験してみてはいかがでしょう。

ちなみに私は、絶対パスでincludeしたいけど相対パスしか
書きたくないとき、よくこういうことをやります。
例:
include_once( dirname( __FILE__ ) . "/my_library.php" );

定数__FILE__は、WEBサーバから呼ばれるときも、シェルから呼ばれる
ときも、またcronで呼ばれるときも、信頼できるようです。
下位から上位を呼ぶときにも、使えます。
例:
include_once( dirname( __FILE__ ) . "/../my_library.php" );

# 蛇足&老婆心ながら、global.funcの拡張子は危険な予感がします。
# 直URLでアクセスされると、ソースが読めたりしませんか?
# 私は関数定義のみのスクリプトでも必ず拡張子は.phpとしています。


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