为什么我的Apache只能访问根拥有的文件?(How come my Apache can only

2019-10-18 04:05发布

在CentOS 6.4和我的Web服务器运行的Apache无法看到任何文件,除非root用户创建或将它们复制。

ps aux | grep apache ps aux | grep apache显示,apache的运行作为apache的用户,而不是根。 我试图chown apache:apache上的文件。 我甚至设置chmod 777上的文件。

-rwxrwxrwx. 1 apache apache 2300 May 15 17:46 example.php

我仍然得到一个HTTP 500错误,还有什么可能是错误的?

也就算我对文件执行chown根:根,它不会工作,我需要真正的cp file.php file.php为根之前它会工作。 我不明白这一点!

chcon -t httpd_sys_content_t example.php让我有! - 感谢克里斯。 这是否意味着我需要改变我的FTP用户的安全上下文设置,以便他们可以上传文件,这样还是我需要改变SELinux的一个规则,以允许更大范围的文件来执行?

Answer 1:

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希望有所帮助。



Answer 2:

如果已经启用suphp然后用777级权限的文件将无法正常工作,并给予500错误,更改权限644。

同时检查错误日志以相同的,如果你仍然面临着同样的问题。

为什么你想“CP file.php file.php”具有相同的名称,复制使用其他名称如下或复制到file.php不存在另一个位置。

CP file.php file.php李明博

要么

CP file.php另一个-DIR / file.php



文章来源: How come my Apache can only access root owned files?