[英]How come my Apache can only access root owned files?
在centos 6.4上运行apache,我的Web服务器看不到任何文件,除非root用户创建或复制它们。
ps aux | grep apache
ps aux | grep apache
显示apache以apache用户(而不是root)运行。 我在文件上尝试了chown apache:apache
。 我什至在文件上设置了chmod 777
。
-rwxrwxrwx. 1 apache apache 2300 May 15 17:46 example.php
我仍然收到http 500错误,还有什么可能是错误的?
即使我将文件切成root:root,也无法正常工作,但我实际上需要先将cp file.php file.php
作为root才能工作。 我不明白!
chcon -t httpd_sys_content_t example.php
我到达那里! -谢谢克里斯。 这是否意味着我需要更改FTP用户的“安全上下文”设置,以便他们可以上传这样的文件,还是我需要更改SELinux中的规则以允许执行更多文件?
SELinux可能是个问题。
请执行ls -lZ example.php
要排除SELinux,您可以:
getenforce
然后
setenforce 0
然后尝试再次访问该文件...
这将暂时使SELinux进入宽松模式。 您可能必须更改文件的上下文! 让我们知道它的发展过程,我们将从那里得到它。
更新:
不出所料,SELinux正在阻止apache访问该文件。 如果您信任此文件,则可以更改其上下文:
chcon -v --type=httpd_sys_content_t example.php
如果有多个文件,则可以使用-R
标志,因此:
chcon -vR --type=httpd_sys_content_t /html/
如您所知,使用ls
您具有-Z
标志以显示SELlinux上下文。 您可以尝试将此标志与ps
等其他程序一起使用。
要解决SELinux问题,建议使用sealert
- setroubleshoot-server
一部分。
我怎么知道您最有可能使用SELinux? 您的文件系统已标记。 我怎么知道您的fs被贴上标签? -rwxrwxrwx**.**
-权限末尾的点告诉fs已标记。
不要忘记更改权限! 您真的不想要777 ...希望能有所帮助。
如果启用了suphp,则具有777权限的文件将无法正常工作并给出500错误,请更改权限644。
如果仍然遇到相同的问题,请检查错误日志是否相同。
为什么要尝试使用相同名称的“ cp file.php file.php”进行复制,请使用以下其他名称或复制到不存在file.php的其他位置。
cp file.php file.php-bak
要么
cp file.php another-dir / file.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.