[PHP-users 12416] ファイルの相対パス指定とディレクトリのパーミッション(4.3.0)

Sugimura Masayuki php-users@php.gr.jp
Mon, 06 Jan 2003 16:07:06 +0900 (JST)


杉村です。

4.3.0 をインストールしてみましたが、

readfile("hoge.txt") 

が、

Warning: readfile(hoge.txt)[function.readfile]: failed to create stream: 
No such file or directory in ....

というエラーになります。

../../hoge.txt のような相対パス指定はみなエラーになりました。
/path/to/hoge.txt と絶対パスで書くと正常に動作します。

readfile() だけでなく require() なども同じです。

しかし調べてみると、他のディレクトリに置いてあるスクリプトは
相対パスでも正常に動作していました。

○ apache の DocumentRoot ディレクトリ
× 個人の $HOME/public_html ディレクトリ

という結果なので、ディレクトリのパーミッションを調べてみたところ、
$HOME に対して chmod o+r する必要がありました。
($HOME/public_html は o+x だけでいいようです)

これまで:
% ls -ld /uhome/sugimura /uhome/sugimura/public_html
drwx-----x   8 sugimura foo	512 Dec 27 15:29 /uhome/sugimura/
drwx-----x   5 sugimura foo	512 Jan  6 14:11 /uhome/sugimura/public_html/

4.3.0:
% ls -ld /uhome/sugimura /uhome/sugimura/public_html
drwx---r-x   8 sugimura foo	512 Dec 27 15:29 /uhome/sugimura/
drwx-----x   5 sugimura foo	512 Jan  6 14:11 /uhome/sugimura/public_html/


o+r だと $HOME の中を他人に覗かれてしまいますし、
相対パス指定のときだけ read パーミッションも必要というのもよくわかりません。

この症状、ウチだけでしょうか?
o+r にはしたくないので、とりあえず 4.3.0 はやめて昔のバージョンに戻しました。

# Solaris 8 + apache 1.3.27 です。
--
Sugimura Masayuki	sugimura@ksp.nis.nec.co.jp