繁体   English   中英

我的Apache为什么只能访问root拥有的文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM