php 中的 fopen() 函数不起作用(apache、linux mint)

问题描述 投票:0回答:1

fopen() 在我的 linux mint 上的 apache2 本地服务器上不起作用

<?php
    error_reporting(E_ALL);
    ini_set('display_errors',1);
    include_once "c&f.php";

    fopen("test.txt", 'w');

文件

test.txt
已创建,我可以打开它并使用 Sublime 向其中写入一些内容。这个特定项目的目录是
/var/www/site02
。当我在安装后配置 apache2 时,我专门更改了这个特定目录 (site02) 的所有权,以便能够读取和写入文件(sudo chown $USER:$USER -R ...你明白了)。而且我确实可以从这个目录中的用户帐户读取和写入(我可以在这个目录中自由使用 cli git 命令,而无需“sudo”)。

如果我使用上面提到的代码访问

index.php
,我会收到此错误:

“警告:fopen(test.txt):无法打开流:第 6 行 /var/www/site02/index.php 中的权限被拒绝”

发生什么事了?我试图用谷歌搜索这个问题,但我得到了数百万种不同的原因,这只会让我更加困惑。是apache服务器的问题吗?或者我需要对 PHP 进行一些配置更改?

php apache
1个回答
0
投票

嗯,我真是个天才。我的意思是,抱歉。因此,在发布这个问题后,我决定使用文件管理器(Thunar)打开 /var/www/site02 以使用 gui 检查权限。是的,这个目录的所有者是我,我可以在其中读写。 groupp 是我的用户名,权限也是 r&w。但对于“其他”只有一项权限:阅读。我已将其更改为读取和写入。并用一些代码测试它:

$fh = fopen("test.txt", 'w') or die("error writing the file");

    $text = <<<_END
    line 1
    line 2
    line 3
    _END;

    fwrite($fh, $text) or die("error writing the file");
    fclose($fh);
    echo "Succses!";

并且成功了!

© www.soinside.com 2019 - 2024. All rights reserved.