Home >Backend Development >PHP Problem >How to solve the problem of insufficient permissions in php fopen
php fopen权限不够的解决办法:1、打开终端命令窗口;2、在terminal中执行命令“sudo chmod 666 testOpen.php”即可。
本文操作环境:linux5.9.8系统、PHP7.1版、DELL G3电脑
PHP使用fopen()函数打开文件提示权限不够问题
PHP fopen() 函数
函数定义和用法:fopen() 函数打开文件或者 URL。
语法:
fopen(filename,mode,include_path,context)
后两个参数是可选的,我们只用了前两个参数,代码如下:
<?php //打开文件流 $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); //向文件中写入字符串 fwrite($myfile, "Hello World"); //关闭文件句柄 fclose($myfile); ?>
代码所实现的功能为:以写入方式打开当前路径下的一个名称为newfile.txt的文件,如果文件不存在则尝试创建之。打开文件以后,向文件中写入Hello World字符串,最后关闭文件。
当前文件夹路径下没有newfile.txt文件,此时执行上述代码出现错误如下:
Warning: fopen(newfile.txt): failed to open stream: 权限不够 in
/home/yums/web/blog_for_r&d/scripts/testOpen.php on line 3
Unable to open file!
权限不够?Linux下最常出现的问题哈,是没有在硬盘上创建文件的权限吗?我尝试给testOpen.php赋更高的权限吧,于是我就在terminal中执行了如下命令:
sudo chmod 666 testOpen.php
这样PHP文件就有了创建文件的权限了吧,我再刷新页面试试,WTF,还是原来那个问题!
Warning: fopen(newfile.txt): failed to open stream: 权限不够 in
/home/yums/web/blog_for_r&d/scripts/testOpen.php on line 3
Unable to open file!
算了,我不用这个函数来创建文件了,我用gedit自己创建newfile.txt文件好了。于是我在terminal中执行了如下命令:
gedit newfile.txt
这样我就创建好了一个文件,再刷新,还是权限不够,我还是看一下这个newfile.txt文件到底有什么权限吧,在terminal中执行如下命令:
ls -all
发现用记事本创建的newfile.txt只有读权限,没有写入的权限,好吧问题出在这呢,给newfile.txt文件提升写的权限吧:
sudo chmod 666 newfile.txt
现在再刷新页面,没有报错了,文件中也写入了相应的字符串。
推荐学习:《PHP视频教程》
The above is the detailed content of How to solve the problem of insufficient permissions in php fopen. For more information, please follow other related articles on the PHP Chinese website!