问题本身很简单,但它真的让我发疯了......我在Stack上读过很多其他问题,但无论我如何改变代码,问题都在不断发生......
为什么......
if(!is_dir($dir)){
clearstatcache();
$mask = umask(0);
if(mkdir($dir, 6750)) chmod($dir, 6750);
umask($mask);
}
...生产......
d--s-wxrwT 2 owner group 4096 Jan 27 20:22 dir/
... $dir
是新创建的dir/
的绝对路径?
正如你所看到的,即使我要求设置6750权限,我也会得到一个可爱但无用的5136 ...(但用户和群组是正确的)以下是我所做的:
这就是我所知道的:
chmod 6750
,获得正确的结果。为什么PHP似乎忘了如何计算?有些问题提到了另外一个Apache2参数搞乱,但我无法弄清楚哪一个......
答案 0 :(得分:0)
没有chmod($dir, 6750)
会不会更简单?
$old = umask(0);
mkdir($path, 06750);
umask($old);
还有一件事你的模式值应该从0开始。 阅读有关模式可能值的manual。