软呢帽 PHP "failed to open stream: Permission denied"
Fedora PHP "failed to open stream: Permission denied"
所以我在 Web 服务器上安装了 Apache 运行 Fedora。我正在尝试写入文本文件。
if(!empty($_POST['versionWrite'])){
$file = fopen(APP_DIR."/resources/version.txt", "w");
fwrite($file, $_POST['versionWrite'].PHP_EOL);
fclose($file);
}
当我执行代码时,我得到了这个:
Warning: fopen(/var/www/spumprnagle/resources/version.txt): failed to open stream: Permission denied in /var/www/spumprnagle/head.php on line 28
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 29
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 30
这发生在每个处理文件的脚本中。而且我不知道该怎么做才能授予 Apache 编辑文件的权限。
感谢您的宝贵时间:)。
我将从检查文件 /var/www/spumprnagle/resources/version.txt
的权限开始,以确保网络用户可以写入它。由于您在此处标记了 fedora
,我相信这通常是 apache
用户,因此请尝试 chown apache:apache /var/www/spumprnagle/resources/version.txt
。
如果您不确定权限设置,您可以随时临时设置 777,例如chmod 777 /var/www/spumprnagle/resources/version.txt
。如果这样可以解决问题,您可以将权限调低到更合理的值 (644)。
问题: apache 用户没有写文件的权限。
解决方案:
chown -R apache:apache path/to/directory
其中 apache 是 fedora 的默认用户,path/to/directory 是包含您要写入的文件的目录路径。
如果你想给单个文件权限那么省略-R
好的,我为那些在 Fedora 上搜索答案的人添加了这个答案。我将文件权限更改为 777 并将文件所有权更改为 apache:apache 但它一直抛出相同的错误。最后我发现在某些版本的 Fedora 中 SElinux 会阻止 Httpd 写入文件。解决方案是禁用 SElinux,如下所示:
vim /etc/selinux/config
然后按如下方式编辑文件:
SELINUX=disabled
然后重启。
它对我有用。
编码愉快。
所以我在 Web 服务器上安装了 Apache 运行 Fedora。我正在尝试写入文本文件。
if(!empty($_POST['versionWrite'])){
$file = fopen(APP_DIR."/resources/version.txt", "w");
fwrite($file, $_POST['versionWrite'].PHP_EOL);
fclose($file);
}
当我执行代码时,我得到了这个:
Warning: fopen(/var/www/spumprnagle/resources/version.txt): failed to open stream: Permission denied in /var/www/spumprnagle/head.php on line 28
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 29
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 30
这发生在每个处理文件的脚本中。而且我不知道该怎么做才能授予 Apache 编辑文件的权限。
感谢您的宝贵时间:)。
我将从检查文件 /var/www/spumprnagle/resources/version.txt
的权限开始,以确保网络用户可以写入它。由于您在此处标记了 fedora
,我相信这通常是 apache
用户,因此请尝试 chown apache:apache /var/www/spumprnagle/resources/version.txt
。
如果您不确定权限设置,您可以随时临时设置 777,例如chmod 777 /var/www/spumprnagle/resources/version.txt
。如果这样可以解决问题,您可以将权限调低到更合理的值 (644)。
问题: apache 用户没有写文件的权限。
解决方案:
chown -R apache:apache path/to/directory
其中 apache 是 fedora 的默认用户,path/to/directory 是包含您要写入的文件的目录路径。
如果你想给单个文件权限那么省略-R
好的,我为那些在 Fedora 上搜索答案的人添加了这个答案。我将文件权限更改为 777 并将文件所有权更改为 apache:apache 但它一直抛出相同的错误。最后我发现在某些版本的 Fedora 中 SElinux 会阻止 Httpd 写入文件。解决方案是禁用 SElinux,如下所示:
vim /etc/selinux/config
然后按如下方式编辑文件:
SELINUX=disabled
然后重启。 它对我有用。 编码愉快。