[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