为什么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恢复到它原来的状态。

有关更多详细信息,请参阅PHP doco for umaskmkdir

http://stackoverflow.com/questions/3997641/why-cant-php-create-a-directory-with-777-permissions

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:为什么PHP不能创建一个具有777权限的目录?