无法工作的fopen()函数在PHP中(Apache,Linux Mint)
P粉722409996
P粉722409996 2023-08-13 14:14:43
0
1
551
<p>fopen()在我的Linux Mint上的apache2本地服务器上不起作用</p> <pre class="brush:php;toolbar:false;"><?php error_reporting(E_ALL); ini_set('display_errors',1); include_once "c&f.php"; fopen("test.txt", 'w');</pre> <p>文件<code>test.txt</code>已创建,我可以使用Sublime打开并向其写入内容。此特定项目的目录是<code>/var/www/site02</code>。在安装后配置apache2时,我特意更改了这个特定目录(site02)的所有权,以便能够读取和写入文件(sudo chown $USER:$USER -R ...你明白的)。事实上,我确实可以在此目录中使用我的用户帐户读取和写入(我可以在此目录中自由使用cli git命令而无需“sudo”)。</p> <p>如果我使用上面提到的代码访问<code>index.php</code>,我会得到以下错误:</p> <blockquote> <p>"警告:fopen(test.txt):无法打开流:权限被拒绝,位于/var/www/site02/index.php的第6行"</p> </blockquote> <p>发生了什么?我尝试过在谷歌上搜索这个问题,但得到了成千上万个不同的原因,只让我更加困惑。问题是apache服务器的问题吗?还是我需要对PHP进行一些配置更改?</p>
P粉722409996
P粉722409996

全部回复(1)
P粉107772015

所以,在发布这个问题后,我决定用文件管理器(Thunar)打开 /var/www/site02 来检查图形界面下的权限。是的,这个目录的所有者是我,我可以读取和写入。组是 我的用户名,权限也是读取和写入。但是对于“其他人”,只有一个权限:读取。我把它改成了读取和写入。并用一些代码进行测试:

$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 "成功!";

而且它成功了!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板