我刚刚开始研究服务器和文件系统,以便使用PHP编写几个实用程序。
我在OS X上将Apache设置为本地主机。为确保以哪个用户身份运行Apache,我运行了posix_getpwuid(posix_getegid())['name']
,并返回了预期的_www
。然后我继续奔跑
$filename = '/Volumes/HDD/programming/PHP/sandbox/dir_permissions_tests/text.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
起初,我不想创建一个单独的组来添加自己和Apache,因为我想测试如果我向“其他”添加阅读权限,它会如何工作。输出也是“文件不存在” 。然后,我向文件路径中的所有目录添加了读取权限,如PHP can't read file with read permissions所示。同样的问题。然后,按照同一链接中的建议添加了执行权限。没有变化。
我错误地认为,通过在Apache _www
下运行,可以对路径中的所有目录以及“其他”组PHP的文件本身设置读,写和执行权限,应该能够找到它而不管它属于哪个文件和组(这就是为什么我要在647以下尝试)?我想念什么?也许我将“其他”理解为“其他所有东西”是不正确的。我无意仅仅为了使其工作而更改路径中所有目录的所有权。创建一个单独的组是一种选择,但是我想先与“其他”一起理解这个问题。
非常感谢。
答案 0 :(得分:0)
问题解决了。我将路径从与根相关的路径更改为与文档相对的路径。但是,我希望一些参考资料可以理解为什么相对根目录无效,而在http://php.net/manual/en/function.file-exists.php的函数文档中,示例中使用了相对根目录路径。