旗下导航:搜·么
当前位置:网站首页 > PHP问题 > 正文

怎样处理php写入文件权限失利 file_put_contents: failed to open stream: Permission denied【php问题】

作者:搜搜PHP网发布时间:2019-11-27分类:PHP问题浏览:89


导读:题目写日记的要领中用到file_put_contents这个要领,今天在实行回调要领的写日记的时刻提醒没有写入文件权限,报错提醒file_put_contents:...

题目

写日记的要领中用到 file_put_contents 这个要领,今天在实行回调要领的写日记的时刻提醒没有写入文件权限,报错提醒

file_put_contents: failed to open stream: Permission denied(PHP视频教程)

处理历程

搜检日记文件夹权限,由于是按天生成的,有个定时使命定时实行,实行用户是root,所以生成文件夹用户和用户组都是root,而回调要领中实行用户是www,写入日记要领中

 if(!is_dir($dir)){
        mkdir($dir,0777,true);
    }

假如目次不存在,建立目次,但是在php的mkdir函数建立文件夹设置777权限,实际上建立的文件照样755的权限。 在linux体系中在建立文件/文件夹时有一个默许权限,此权限受 umask 设置影响,在/etc/bashrc设置文件中我们能够找到以下设置:

if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002else
        umask 022fi

linux体系中默许的umask为022,与我们的777 &运算以后,就变成了 755,这就是缘由地点了。 这里的设置直接影响到linux体系的默许权限设置,不仅仅是PHP的题目。所以不发起直接进行修正把022 改成 000 。

末了处理方案

先建立目次,再运用chmod将权限修正为 777

mkdir('test', 0777);
chmod('test', 0777);

以上就是怎样处理php写入文件权限失利 file_put_contents: failed to open stream: Permission denied的细致内容,更多请关注ki4网别的相干文章!

标签:php写入文件