2016-08-25 20 views
0

我使用Ubuntu作为我的操作系统,并且我有XAMPP。在htdocs文件夹中,我创建了一个项目文件夹,其中有index.php文件。现在的index.php,代码的一部分,做到这一点:在Ubuntu中运行PHP程序 - fopen(“filename”,“w”):无法打开流:权限被拒绝

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文件未创建。

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

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

我的尝试:

我试图运行sudo chmod 777 colors_new.csv,但我得到chmod: can not access colors_new.csv. No such file or directory.。我试着用文件名(如图所示)在项目目录中的WAS终端上执行此操作;以及提供文件的完整绝对路径。两次都有同样的错误。


注:我所看到的其他问题,如上面所指出的,我想给权限的文件。其他问题没有解决问题,下面接受的答案确实解决了这个问题。

+1

在运行chmod命令之前,您必须在文件的位置。否则它会抛出错误:chmod:无法访问colors_new.csv。没有这样的文件或目录 –

+2

这个问题不在文件中,因为它没有被创建,但是使用文件夹/目录,你很可能没有在目录/文件夹中创建文件的权限 – Epodax

+0

可能有[无法打开流:没有这样的文件或目录](http://stackoverflow.com/questions/36577020/failed-to-open-stream-no-such-file-or-directory) –

回答

2

这意味着您没有权限在index.php所在的目录中写入文件。你可以做的几件事情使它工作

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

  • 在你的目录中创建一个子目录,并给予足够的权利(755)去做你想做的事。 F.i. Fopen('./ files/colors_new.csv)

2

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

+0

以及如何做到这一点? – Jesss

+0

@Jesss与文件一样,最常见的是你的文件夹需要具有'755'或'775',这取决于你系统的安装方式。但是那里有很多教程。 – Epodax

+0

chmod选项权限文件名 –

相关问题