php中的fopen()函数不起作用(apache,Linux mint)[重复]

uqzxnwby  于 2023-10-23  发布在  Apache
关注(0)|答案(1)|浏览(137)

此问题已在此处有答案

How to give apache permission to write to home directory?(5个答案)
2个月前关闭。
fopen()在Linux mint上的apache 2本地服务器上不工作

  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set('display_errors',1);
  4. include_once "c&f.php";
  5. fopen("test.txt", 'w');

创建了test.txt文件,我可以打开它并使用Sublime向其中写入一些内容。这个项目的目录是/var/www/site02。当我在安装后配置apache 2时,我专门更改了这个特定目录(site 02)的所有权,以便能够读取和写入文件(sudo chown $USER:$USER -R.你得到的想法)。而且我确实可以在这个目录中从我的用户帐户读取和写入(我可以在这个目录中自由地使用cli git命令,而不需要“sudo”)。
如果我用上面提到的代码访问index.php,我会得到这个错误:
“警告:fopen(test.txt):无法打开流:/www/site02/index.php第6行”
这是怎么回事?我试着在谷歌上搜索这个问题,但我得到了数百万个不同的理由,这只会让我更加困惑。是Apache服务器的问题吗?或者我需要为PHP做一些配置更改?

kzipqqlq

kzipqqlq1#

好吧,我真是个天才。对不起所以,在发布这个问题后,我决定用文件管理器(Thunar)打开/var/www/site 02,用gui检查权限。是的,这个目录的所有者是我,我可以在里面读和写。groupp是 NAME OF MY USER,权限也是r&w。但对于“其他人”,只有一个许可:读我把它改成了读和写并使用一些代码测试它:

  1. $fh = fopen("test.txt", 'w') or die("error writing the file");
  2. $text = <<<_END
  3. line 1
  4. line 2
  5. line 3
  6. _END;
  7. fwrite($fh, $text) or die("error writing the file");
  8. fclose($fh);
  9. echo "Succses!";

而且成功了!

相关问题