file_existsがfalseを返し、is_fileがtrueを返すという問題が発生しています。PHP:is_file()とfile_exists()は同じファイルで異なる結果を返します
echo(getmygid()." = gid\n"); //501
echo(getmyuid()." = uid\n"); //501
echo(posix_getgid()." = pgid\n"); //501
echo(posix_getuid()." = puid\n"); //501
var_dump(file_exists("/home/www/public_html/")); //bool(true)
var_dump(file_exists("/home/www/public_html/index.html")); //bool(false)
var_dump(is_file("/home/www/public_html/index.html")); //bool(true)
var_dump(stat("/home/www/public_html/index.php"));
出力は次のようになります。
501 = gid
501 = uid
501 = pgid
501 = puid
bool(true)
bool(false)
bool(true)
array(26) {
[0]=>
int(51712)
[1]=>
int(58055)
[2]=>
int(33197)
[3]=>
int(1)
[4]=>
int(501)
[5]=>
int(501)
[6]=>
int(0)
[7]=>
int(473)
[8]=>
int(1323573973)
[9]=>
int(1323573973)
[10]=>
int(1323574039)
[11]=>
int(4096)
[12]=>
int(8)
["dev"]=>
int(51712)
["ino"]=>
int(58055)
["mode"]=>
int(33197)
["nlink"]=>
int(1)
["uid"]=>
int(501)
["gid"]=>
int(501)
["rdev"]=>
int(0)
["size"]=>
int(473)
["atime"]=>
int(1323573973)
["mtime"]=>
int(1323573973)
["ctime"]=>
int(1323574039)
["blksize"]=>
int(4096)
["blocks"]=>
int(8)
}
私は私が構成で何か間違ったことを行っているが、非常にそれが何であるかを考え出したていない想像してみてください。
さらにエキサイティングなことは、file_existsが動作しなくても、fread(fopen('/home/www/public_html/index.html','r'), filesize('/home/www/public_html/index.html'))
がファイルの内容を返すことです。
あなたは間違ったファイルにstatを投稿しましたが、修正できますか? – ajreal
これらのディレクトリ(home、www、public_html)には、このスクリプトに対して読み取り権限が有効になっていますか?そして、それらはすべてシンボリックリンクではなく、ディレクトリですか? –
ええ。私の悪い。ちょうどそれを修正した。これは空です。 655モードがあります。 – teotwawki