为什么PHP无法创建具有777权限的目录?
我正在尝试通过以下命令使用PHP在服务器上创建目录:
mkdir("test", 0777);
但是它不提供完全权限,仅提供以下权限:
rwxr-xr-x
回答:
该模式是由当前的修改umask
,这是022
在这种情况下。
umask
工作方式是减法。您获得的初始许可权,mkdir
然后减去umask
以获得 实际 许可权:
0777- 0022
======
0755 = rwxr-xr-x.
如果您不希望这种情况发生,则需要将您的umask
临时设置为零,以使其无效。您可以使用以下代码段执行此操作:
$oldmask = umask(0);mkdir("test", 0777);
umask($oldmask);
第一行将更改umask
为零,同时将前一个存储到中$oldmask
。第二行使目录使用所需的权限和(现在不相关)umask
。第三行将还原umask
为原始状态。
有关umask和mkdir的更多信息,请参见PHP
doco 。
以上是 为什么PHP无法创建具有777权限的目录? 的全部内容, 来源链接: utcz.com/qa/398568.html