Php 奇怪的apache行为:如果不是文件所有者,则出现错误500

Php 奇怪的apache行为:如果不是文件所有者,则出现错误500,php,linux,apache,centos,chown,Php,Linux,Apache,Centos,Chown,我的服务器运行在Centos 5上,我最近将我的php从5.4.21升级到5.4.41,以解决一些php_intl兼容性问题。我的问题说明了 我通常所有的httpdocs文件都在chown root:apache和chmod 755中,除了我需要apache编写的目录,比如symfony app/cache或其他目录 最近更新后,我的网页变为空白,返回一条无声的无消息500错误 在不改变root:apache的chown的情况下,我设置了一个chmod 755*-R,它再次工作了2分钟左右,然后

我的服务器运行在Centos 5上,我最近将我的php从5.4.21升级到5.4.41,以解决一些php_intl兼容性问题。我的问题说明了

我通常所有的httpdocs文件都在chown root:apache和chmod 755中,除了我需要apache编写的目录,比如symfony app/cache或其他目录

最近更新后,我的网页变为空白,返回一条无声的无消息500错误

在不改变root:apache的chown的情况下,我设置了一个chmod 755*-R,它再次工作了2分钟左右,然后返回到这个无声的500错误

然后我意识到,如果我将chown设置为apache:apache,问题就不会发生

这个chmod 755*-R修复了两分钟的问题,这真的很奇怪,我花了很多时间试图弄清楚一个文件是自己切换回另一个chmod还是别的什么,但是没有

如果你有任何线索,为什么这个chmod只会在几分钟内解决这个问题

第二件最重要的事情是,为什么apache不在根目录下读取我的文件:Apache755,因为它显然具有读取权限

一些细节:

我通过sudo httpd启动运行httpd 在配置中,httpd的用户和组是apache 我的linux用户apache属于apache组
在我更新php版本之前,它工作正常,这很奇怪,因为apache confi似乎没有改变。

这里是CentOS,所以我怀疑SELinux。如果您更改了SELinux上下文,RestorSecond将更改回SELinux上下文,但听起来您只修改了权限。首先,使用/usr/sbin/getenforce检查SELinux是否在强制模式下运行。您还应该查看Apache的错误日志,因为任何500个错误都应该在PHP中详细说明,沉默的500被称为死亡白屏。它可以在代码中修复。/usr/sbin/getenforce返回已禁用。奇怪的是,没有任何变化,死亡的500白色屏幕并没有立即出现,而是逐渐出现在我的不同vhost上。您需要查看Apache的错误日志,以了解500错误的具体内容。对于这个特定的白色屏幕,没有错误。在/var/log/httpd/error_log以及vhost//statistics/logs中查找,我试图生成其他500个错误,我确实有日志,但对于这个特定的nop。如果有不同的错误,我将检查我的httpd配置。如果是Apache错误,它必须记录在某个地方。如果这是一个PHP错误,那么如果PHP.ini为error\u reporting指定了除off之外的一些值,并且log\u errors处于打开状态,则会记录该错误。在php.ini中确保error\u reporting=E\u ALL和log\u errors=On。您需要重新启动Apache才能使其生效。