我试图针对特定目录(在我的案例中是/home/gregh/Mail)发出并打开_dir函数,但失败了。当我使用is_dir和is_file检查目录时,它们都返回false(见下文)。我检查了目录和父目录的权限,两者都有775个权限,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_dr(“/home”)返回TRUE。
具体来说,为什么“is_dir”函数返回false?这似乎指向某种特权问题,但我想不出是什么。有什么想法吗?