为什么 PHP 不能创建具有 777 权限的目录?
我正在尝试使用PHP在服务器上创建一个目录,并带有以下命令:
mkdir("test", 0777);
但它没有提供完全权限,只有这些:
rwxr-xr-x
我正在尝试使用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 设置的影响。您可以通过操作umask来创建具有特定权限集的文件,如下所示:-
$old = umask(0);
mkdir("test", 0777);
umask($old);