为什么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

回到顶部