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 进行一些配置更改?
嗯,我真是个天才。我的意思是,抱歉。因此,在发布这个问题后,我决定使用文件管理器(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!";
并且成功了!