在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的一个规则,以允许更大范围的文件来执行?
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李明博
要么
CP file.php另一个-DIR / file.php