运行 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)
我正在使用 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)