【问题标题】:PHP fopen function not workingPHP fopen函数不起作用
【发布时间】: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。

标签: file php webserver


【解决方案1】:

自从我使用 PHP 以来已经有很长时间了,但我相信 fopen() 需要有一个用于模式的字符串/字符参数。因此:

$file = fopen("/home/msantos/direction.txt", w);  

变成

$file = fopen("/home/msantos/direction.txt", 'w');  

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多