【问题标题】:fopen() gives permission denied error - despite chmod 777fopen() 给出权限被拒绝错误 - 尽管 chmod 777
【发布时间】:2015-04-23 06:10:17
【问题描述】:

在尝试使用 fopen() 时,我在运行 LAMP 堆栈的 Fedora 20 桌面上收到以下错误

警告:fopen(/var/www/html/php/documents/orders.txt):

打开流失败:

第 76 行 /var/www/html/php/processorder.php 中的权限被拒绝

我使用的代码是

$fp = fopen("$DOCUMENT_ROOT/php/documents/orders.txt", 'ab');

orders.txt 拥有以下权限

[root@localhost 文档]# pwd

/var/www/html/php/文档

[root@localhost 文档]# ls -l

共 4 个

-rwxrwxrwx。 1 拜伦网络内容 21 年 2 月 12 日 12:33 orders.txt

我意识到这个问题已经被问过很多次了,但没有一个解决方案对我有用。我是 Linux/Fedora 和 LAMP 的新手,所以如果错误是出于无知,我深表歉意。

编辑:似乎是 SELinux 导致了问题,不确定如何在更改 SELinux 中的设置方面克服这个问题,所以我禁用了它。

要查看是否正在执行 SELinux(我使用的是 Fedora 20),请使用 /usr/sbin/sestatus

要禁用 SELinux,请在 /etc/selinux/config 中配置 SELINUX=disabled

【问题讨论】:

  • 可能是 www 用户不允许读取其中一些目录,解决方案是 chown www-data:www-data -R /var/www 其中第一个 www-data 是用户和第二组
  • @kmlnvm :我没有用户或组 www-data,从 /var/www(包括 www)递归拥有所有文件和目录的用户:组是 byron:web-content。我猜问题出在httpd.conf,这可能吗?此外,apache 是组 web-content 的成员。

标签: php fopen file-permissions lamp fedora20


【解决方案1】:

似乎是 SELinux 导致了这个问题,不知道如何在更改 SELinux 中的设置方面克服这个问题,所以我禁用了它。

要查看是否正在执行 SELinux(我使用的是 Fedora 20),请使用 /usr/sbin/sestatus。

要禁用 SELinux,请在 /etc/selinux/config 中配置 SELINUX=disabled。

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 2019-01-13
    • 2016-06-25
    • 1970-01-01
    • 2014-08-09
    • 2012-05-09
    • 1970-01-01
    • 2017-02-20
    相关资源
    最近更新 更多