【发布时间】:2017-12-22 15:20:12
【问题描述】:
我正在尝试在我的计算机上开发一些网页,它一直运行良好,直到我尝试使用 fopen 函数,它每次返回 FALSE。 .php 文件位于 /var/www/html/ 目录中,我要打开的文件也在同一目录中,但我也尝试在 /home/myusername/ 目录中打开一个文件,但它没有也可以工作。
我在其他帖子中看到它可能是权限,我按照建议做了,但它仍然不起作用。
我的代码:
...
$file = fopen("/home/msantos/direction.txt", w);
if ($file == FALSE) {
echo "error fopen <br>";
}
if(fwrite($file, "teste") == FALSE)
{
echo "error fwrite";
}
结果总是:“error fopen”。显然,由于 fopen 不起作用,我也得到:“error fwrite”。
有谁知道我做错了什么或者我必须做些什么才能让它发挥作用?
编辑: 在我使用 error_get_last() 的其中一个 cmets 中提出了建议,它输出以下内容:
Array ( [type] => 2 [message] => fopen(/home/msantos/direction.txt): failed to open stream: Permission denied [file] => /var/www/html/teste.php [line] => 29 )
所以看来确实是权限问题。我必须做些什么才能让它发挥作用?
【问题讨论】:
-
您使用的是什么发行版?在某些发行版上,你有 selinux 阻止 php 和 apache 的读写权限也向我们展示了文件的权限
-
我用详细的错误更新了帖子。我正在使用 Fedora 26。