centos php 生产环境 遇到文件生成的权限问题

服务器系统是centos
用了宝塔面板
php版本是7.2

具体代码如下

//文件目录路径为“./attachment/qrcode/user”
$path="./attachment/qrcode/user";if(!is_dir($path)){
    mkdir($path,"0777",1);
}
//目录创建后写入一个1.txt

1、运行后首先提示错误

mkdir(): Permission denied

查看生成文件的目录,因为attachment原来是777权限的,qrcode目录生成了,但是下面的user目录没有生成

2、给qrcode目录777权限后,再次运行,提示错误

fopen(./attachment/qrcode/user/1.txt): failed to open stream: Permission denied

查看生成文件的目录,user目录生成了,没有777权限,就继续给user目录设置777权限;
再次运行,1.txt文件就成功生成了

代码里已经设置“mkdir($path,"0777",1);”
应该是按照路径递归生成并设置777权限啊
不知道这样的情况产生的原因是什么?


慕标琳琳
浏览 454回答 2
2回答

偶然的你

谢邀,看了下底层源码,第二个参数,强制要求了为int型,如果不填写,则默认为0777的权限。
打开App,查看更多内容
随时随地看视频慕课网APP