我花了好几个小时来了解如何在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
答案 0 :(得分:9)
我遇到了同样的问题,因为SELinux阻止了httpd,在这个命令之后它运行正常:
setsebool -P httpd_unified 1
我在fedora 23上。
答案 1 :(得分:1)
有很多事情可能影响到这一点:
您服务器的目录具有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
。