运行 Ubuntu 中的 PHP 程序 - fopen("filename", "w"): 无法打开流:权限被拒绝

Running a PHP program in Ubuntu - fopen("filename", "w"): Failed to open stream: Permission denied

我正在使用 Ubuntu 作为我的 OS,并且其中有 XAMPP。在 htdocs 文件夹中,我创建了一个项目文件夹,其中包含 index.php 文件。现在在 index.php 中,有一部分代码是这样做的:

fopen("colors_new.csv", "w");

来自manual

'w' Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

但是我得到的不是文件,而是

Warning: fopen(colors_new.csv): failed to open stream: Permission denied...

当我查看项目文件夹时,未创建 colors_new.csv 文件。

当我运行这个程序在另一台电脑运行宁WindowsOS时,它运行成功了。文件创建成功。

如何解决 Ubuntu 中的这个问题?

我尝试了什么:

我尝试 运行 sudo chmod 777 colors_new.csv 但我得到 chmod: can not access colors_new.csv. No such file or directory.。当终端位于项目目录中时,我仅使用文件名(如图所示)进行了尝试;以及提供文件的完整绝对路径。两次都出现同样的错误。


注意:我看到了其他问题,并且如上所述,我尝试授予文件权限。其他问题没有解决问题,下面接受的答案确实解决了。

提供对要写入文件的文件夹的写入权限。您的问题将得到解决。

这意味着您无权在您的index.php所在的目录中写入文件。你可以做几件事来让它发挥作用

  • 授予目录文件写入权限。 在那个上使用 755,在文件上使用 644,如果设置正确,这就足够了。永远不要充满 777,这是安全风险。

  • 在您的目录中创建一个子目录,并赋予该子目录足够的权限 (755) 来执行您想要的操作。 F.i。 Fopen('./files/colors_new.csv)