Fedora文件权限apache没有写访问权限

时间:2013-04-27 14:44:32

标签: apache permissions fedora chmod chown

我花了好几个小时来了解如何在Fedora 18中获取apache安装的文件权限。我做了以下没有运气:

httpd.conf(之后重新启动)

DocumentRoot "/var/www/html"

<Directory "/var/www/html/">
    AllowOverride all
    # Allow open access:
    Require all granted
    Options Indexes FollowSymLinks Multiviews
</Directory>

我的/ var / www / html文件夹上的文件权限

drwxrwxrwx. 6 chris apache 4096 26 apr 22:40 .
drwxrwsrwx. 7 chris apache 4096 23 apr 09:30 ..
-rwxrwxrwx. 1 chris apache   19 22 apr 08:37 index.php
-rwxrwxrwx. 1 chris apache   20 21 apr 17:14 info.php
drwxrwxrwx. 8 chris apache 4096 27 apr 14:58 pyro
-rwxrwxrwx. 1 chris apache  125 24 apr 00:36 test.html

正如您所看到的,我甚至已经将权限更改为777(使用-R)

我还尝试将用户更改为root和apache,group to user和root等。在我的版本中,我有2个用户:root和chris。

我怎么改变这个并不重要..我仍然得到PHP错误(例如在pyrocms后端):

A PHP Error was encountered

Severity: User Warning
Message: system/cms/cache/default/simplepie/ is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.
Filename: libraries/Simplepie.php
Line Number: 2040

Stil似乎不是pyrocms,因为Laravel框架给了我相同类型的错误。

修改 我的httpd.conf中的用户和组也设置为apache

2 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,因为SELinux阻止了httpd,在这个命令之后它运行正常:

setsebool -P httpd_unified 1

我在fedora 23上。

答案 1 :(得分:1)

有很多事情可能影响到这一点:

  • 自主访问控制(DAC)
  • SELinux文件/内容类型
  • 用户:群组所有权
  • apache服务器模块丢失/配置错误。

您服务器的目录具有777权限这一事实会导致我排除 DAC 作为错误的主要原因;但是,您可能需要检查以确保用户(chris)是apache组的一部分,这只是为了衡量标准。此外,httpd服务器默认将文件读/写为apache 用户

同样,你说过,即使在“禁用” SELinux 之后,错误仍然存​​在;我假设您已执行setenforce 0或其他相关操作,以便将SELinux政策从Enforcing更改为Permissive。此外,如果它与SELinux有关,大多数时候(如果不是全部)你会收到关于拒绝的通知,或者你可以在日志中看到它。同样,为了更好地衡量,请使用ls -Z检查目录/文件的SELinux内容类型;内容类型应为httpd_sys_content_t或甚至httpd_sys_content_rw_t

最后,应彻底检查apache模块和服务器配置 - 包括 httpd.conf 文件中的注释 - 以获取正确的选项,模块以及订单。如果所有其他方法都失败了,请尝试移动这些行

 <Directory "/var/www/html/">
    AllowOverride all
    # Allow open access:
    Require all granted
    Options Indexes FollowSymLinks Multiviews
</Directory>

到配置文件(/etc/httpd.conf)的底部。应仔细检查该代码块中的 Options 标志;您可以在apache website获取有关该信息的更多信息。例如,在这种情况下,不确定事物的顺序是否会改善/改变你的东西,但我的Fedora系统上的httpd.conf文件选项列出之前 Require All granted