PHP项目中mkdir()无写权限如何解决

介绍

本篇文章给大家分享的是有关PHP项目中mkdir()无写权限如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

PHP有什么用

PHP是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及PHP自创新的语法,主要用来做网站开发,许多小型网站都用PHP开发,因为PHP是开源的,从而使PHP经得久不衰。

<强> umask是什么?

我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢?

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。

umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile, $ HOME/ash_profile或$ HOME/8乓募猩柚胾mask值。

<>强如何计算umask值吗?

umask命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主,同组用户,其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7 .

该命令的一般形式为:umask nnn,其中nnn可为000 - 777。

我们只要记住umask是从权限中“拿”走相应的位即可。

如:umask值为022,则默认目录权限为755年,默认文件权限为644。
所以,如果用户umask是022(一般默认是这个),即:000 010 010在于mkdir指定的777年,即:111 111 111位”与“后得到的真实权限为:022 .

如果想让新建文件夹权限最大,有两种方法可以实现:(当然,是在当前用户能赋予最高权限的条件下)

1,修改用户umask, php提供有umask函数:

代码如下:


oldumask美元=umask (0);
mkdir(& # 39;测试# 39;,0777);
umask ($ oldumask);

这种方法看起来一劳永逸,在脚本开头文件里指定下umask值,后面直接用mkdir就可以控制权限,需要注意的是:在多线程服务器上使用umask函数时,多个线程会公用一个umask,所以可能会造成混乱。

2,使用chmod函数,这也是最常用的方法:

代码如下:


mkdir(& # 39;文件地址& # 39;,0777);
chmod(& # 39;文件地址& # 39;,0777年)。

以上就是PHP项目中mkdir()无写权限如何解决,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

PHP项目中mkdir()无写权限如何解决