PHP fopen() 权限被拒绝

PHP fopen() Permission denied

我是一名 PHP 初学者,我正在处理文件,但我无法在自己的服务器中打开文件,因为存在 "permission denied" 错误。我正在使用 fopen() 函数:fopen('file.txt', 'r+');

我在 CentOS 中使用 Apache 2.4.37 和 PHP 7.2.11。我在互联网上搜索了很多但没有任何效果,我安装了 fpm,我尝试使用其他 PHP 版本,我检查 allow_url_fopen 是否打开,我重新安装了 PHP 和Apache,我确保所有权限都可以。我还在 VM 中安装了其他 CentOS,但问题也出在上面,然后我尝试使用 Ubuntu 并且它运行良好,但我的服务器在 CentOS 中是 运行。

好的,找了一天终于解决了。问题是关于 SELinux 的。

我不知道为什么,SELinux 默认进入强制模式,但当我关闭它时,一切都解决了。如果您出于安全原因不想关闭它,您可以设置权限,但这对于初学者用户来说是一种高级理解。我在这里找到了如何设置这些权限: https://serverfault.com/a/819370

如果您不想对抗 SELinux,您可以通过编辑 /etc/sysconfig/selinux 将其关闭,并在 SELINUX= 之后放置 permissive(推荐)或 disabled

如果您想了解有关 SELinux 的更多信息,DigitalOcean 有一篇关于此的精彩帖子:https://www.digitalocean.com/community/tutorial_series/an-introduction-to-selinux-on-centos-7