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

时间:2016-08-25 07:06:06

标签: php csv ubuntu fopen

我使用Ubuntu作为我的操作系统,我有XAMPP。在htdocs文件夹中,我创建了一个项目文件夹,其中包含index.php文件。现在在index.php中,代码的一部分执行此操作:

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

来自manual

  

' W'仅供写作;将文件指针放在开头   该文件并将文件截断为零长度。 如果文件没有   存在,试图创造它。

但是我没有创建文件,而是

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

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

当我在运行Windows操作系统的另一台计算机上运行此程序时,它会成功运行。文件已成功创建。

如何在Ubuntu中修复此问题?

我做了什么:

我尝试运行 sudo chmod 777 colors_new.csv ,但我得到 chmod: can not access colors_new.csv. No such file or directory. 。我在项目目录中的终端WAS时只用文件名(如图所示)尝试了这个;以及给出文件的完整绝对路径。两次都有同样的错误。

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

2 个答案:

答案 0 :(得分:2)

提供要在其中写入文件的文件夹的写入权限。你的问题将得到解决。

答案 1 :(得分:2)

这意味着您无权在index.php所在的目录中写入文件。你可以采取一些措施使其发挥作用

  • 为目录提供文件写入权限。 使用755和文件644,如果设置正确,这就足够了。永远不会满员777,这是安全风险。

  • 在目录中创建一个子目录,并提供足够的权限(755)来执行您想要的操作。 F.i.的fopen(” ./文件/ colors_new.csv)