is_dir和is_file都返回false

格雷格

我正在尝试针对特定目录(在我的情况下是/ home / gregh / Mail)发出open_dir函数,但是它失败了。当我使用is_dir和is_file检查目录时,它们都返回false(请参见下文)。我检查了目录和父目录的权限,并且都具有775 privs和apache用户,甚至具有与目录所有者相同的组成员身份。

 print("DEBUG - dir = self::SBD_ROOT_PATH = " . self::SBD_ROOT_PATH . " <P>");
 print("DEBUG -   is_dir(self::SBD_ROOT_PATH) = ");
 var_dump(is_dir(self::SBD_ROOT_PATH));
 print("DEBUG -   is_file(self::SBD_ROOT_PATH) = ");
 var_dump(is_file(self::SBD_ROOT_PATH));

这将产生以下输出:

 DEBUG - dir = self::SBD_ROOT_PATH = /home/gregh/Mail
 DEBUG - is_dir(self::SBD_ROOT_PATH) = bool(false)
 DEBUG - is_file(self::SBD_ROOT_PATH) = bool(false)

以下是一些目录设置信息:

[gregh@proteus ~]$ whoami
gregh
[gregh@proteus ~]$ groups
gregh apache admin
[gregh@proteus ~]$ ls -l /home/gregh

drwxrwxr-x.  6 gregh admin  4096 Mar  1 11:46 Mail

然后,我向“ apache用户”致敬:

-bash-4.1$ whoami
apache
-bash-4.1$ groups
apache admin
-bash-4.1$ ls /home/gregh/Mail
7012  7052  email_backup  Errors  float_data  sbd

我还添加了检查以查看:is_dir(“ / home / gregh”)返回和is_dir(“ / home”)返回。有趣的是,is_dir(“ / home / gregh”)返回FALSE,而is_dir(“ / home / gregh”)返回TRUE。

具体来说,为什么“ is_dir”函数返回false?这似乎指向某种特权问题,但我不知道这是什么。有任何想法吗?

达伦·库克(Darren Cook)

您询问了故障排除的想法,所以这些是我要添加的其他功能:

clearstatcache();
echo file_exists(self::SBD_ROOT_PATH);
print_r(fstat(self::SBD_ROOT_PATH));
shell_exec('getfacl '.escapeshellarg(self::SBD_ROOT_PATH));

某些版本的Linux上的ACL权限以前已经困扰我了,这就是最后一行的内容。

需要注意的另一件事是Apache / PHP必须到达您的目录。如果它对以上所有目录都没有至少“ rx”权限,那么也许它不能走得那么远?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

is_file() 和 is_dir() 不起作用

来自分类Dev

从PHPStorm进行远程调试时,is_dir返回false

来自分类Dev

使用绝对路径时,is_file返回false

来自分类Dev

在javascript中,[] === []和[] == []都返回false

来自分类Dev

为什么(null == false)和(null == true)都返回false?

来自分类Dev

is_file和zend框架路由

来自分类Dev

is_file和zend框架路由

来自分类Dev

PHP Doctrine和is_dir():open_basedir错误

来自分类Dev

Java:if和else在每种情况下都返回true或false

来自分类Dev

jQuery .is:checked每次都返回false

来自分类Dev

如果ViewHolder的语句每次都返回false

来自分类Dev

闰年脚本,每次都返回false

来自分类Dev

reader.HasRows 每次都返回 FALSE

来自分类Dev

为什么'dir(1)是dir(True)'返回False

来自分类Dev

URL的cURL is_file函数

来自分类Dev

Dir()和FSO都缺少1个文件

来自分类Dev

getHeight() 和 getWidth() 都返回 0

来自分类Dev

为什么这个if语句每次都返回false?

来自分类Dev

PHP数据库查询每次都返回false

来自分类Dev

bcrypt-nodejs compare方法每次都返回false

来自分类Dev

无论接触内部视图如何,PointInside方法都返回false

来自分类Dev

比较十六进制字符串都返回false

来自分类Dev

为什么这个if语句每次都返回false?

来自分类Dev

无论接触内部视图如何,PointInside方法都返回false

来自分类Dev

PHP is_file()无法正常工作

来自分类Dev

PHP is_file()无法正常工作

来自分类Dev

为什么filelib:is_dir和filelib:is_regular函数不适用于包含空格的文件和文件夹?

来自分类Dev

为什么“ [] == true”和“![] == true”都评估为false?

来自分类Dev

如果f和g都失败,如何使“ first”返回“ Failure”?

Related 相关文章

热门标签

归档