博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中mkdir()函数的权限问题
阅读量:6983 次
发布时间:2019-06-27

本文共 496 字,大约阅读时间需要 1 分钟。

  hot3.png

遇到个问题 
某个定时job用root用户mkdir('./test/',0777)新建了目录,指定了权限是0777,结果获得的是0755,
而web上用www用户也在这目录创建目录和文件,结果报错了,一开始一直以为是有人修改了权限。。。。
mkdir()函数指定的目录权限只能小于等于系统umask设定的默认权限。
默认的umask如果为目录权限为0755, 那php  mkdir('./test/',0777) 得到目录的权限是0755.
解决方法
1,开始时指定umask
$old=umask(0); 
mkdir('./test/',0777);
umask($old);
2,使用chmod
mkdir('./test/',0777);
chmod('./test/',0777);
手册里面提到:
在多线程的服务器上尽量避免使用这个函数。创建文件后要改变其权限最好还是使用 chmod()。使用 umask()会导致并发程序和服务器发生不可预知的情况,因为它们是使用相同的 umask 的。

转载于:https://my.oschina.net/penngo/blog/134563

你可能感兴趣的文章
JavaScript 实现的base64加密、md5加密、sha1加密及AES加密
查看>>
缩略图悬浮效果的jQuery焦点图
查看>>
浅析如何在Nancy中生成API文档
查看>>
WPF 自定义的图表(适用大量数据绘制)下
查看>>
docker入门1 : 使用docker镜像
查看>>
mysql 8.0.12安装教程
查看>>
SQL Server会话KILL不掉,一直处于KILLED /ROLLBACK状态情形浅析
查看>>
顺时针打印矩阵
查看>>
AUC、ROC、Recall、Precision和F1 Score
查看>>
MongoDB的数据格式及数据类型
查看>>
每天学点SpringCloud(七):路由器和过滤器-Zuul
查看>>
解决fastjson反序列化时报错的问题
查看>>
BlockingQueue学习
查看>>
博客详细配置,相信我你想要的配置都在这里
查看>>
GTK+重拾--03
查看>>
SpringBoot 手写拦截器
查看>>
为什么我们做分布式使用Redis?
查看>>
web前端知识体系大全,教你如何学习前端!
查看>>
py 决策树①
查看>>
帮您找到正确的提问渠道
查看>>