任何导致服务器内部错误的.php文件


Any .php file causing INTERNAL SERVER ERROR

突然所有的。php文件在我的服务器导致内部服务器错误。

我不知道它是否相关,但它是在我更新yum时开始的。

即使空白的。php文件也会导致错误。我已经移动了我所有的网站内容,只尝试了一个空的。php文件,仍然给出了相同的错误。

也没有。htaccess文件。

我该怎么办?=/

(同一服务器上的其他站点工作正常)

Apache和php日志似乎没有更新。Apache的最后一个版本是今天发布的,但与这个问题没有任何关系。PHP的最后一个是四月

更新

我发现每个域都有自己的Apache日志。

这里是这个特定网站的内容

[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.24] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.168] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 173.245.56.168] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.144] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.144] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.150] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:02 2011] [error] [client 103.22.200.150] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:03 2011] [error] [client 173.245.56.168] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:03 2011] [error] [client 173.245.56.168] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:04 2011] [error] [client 199.27.128.138] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:04 2011] [error] [client 199.27.128.138] Premature end of script headers: cgi_wrapper
[Thu Jul 28 22:04:04 2011] [error] [client 103.22.200.246] suexec policy violation: see suexec log for more details
[Thu Jul 28 22:04:04 2011] [error] [client 103.22.200.246] Premature end of script headers: cgi_wrapper

我不确定,但有时它可能与文件的权限有关。在我使用的web主机上,如果权限没有设置为655,它将给出505;777将给出一个500内部服务器错误。我的猜测是,在PHP发行版的YUM更新中,他们做了类似的事情,但这只是猜测。简而言之,检查文件权限,如果它们不是655,然后尝试将它们更改为655。

尝试阅读日志。请记住,许多主机在超载时抛出500内部服务器错误,即使php没有问题。当我或同一服务器上的其他人超额收费时,我的共享主机帐户就会发生这种情况

如果等待服务器变得不那么忙或者你没有看到日志,那么你应该真的和你的主机支持人员谈谈,这似乎与PHP本身无关,至少与你这边无关。

在https://support.exabytes.com/kb/a3479/500-internal-server-error-information.aspx:

权限错误,可由组

一个错误的权限错误可能看起来像这样:

[Sun Jun 05 12:03:22 2012] [error] [client 66.249.72.82] SoftException in Application.cpp:601: Directory "/home/exampleuser/public_html" is writeable by group

在本例中,文件夹对文件夹的权限设置过高。要纠正这个错误,需要将权限从"777"更改为"755"。

目录和文件夹应该是755。cgi-bin文件夹下的可执行脚本必须是755。图片、媒体和文本文件(如HTML)应该是644.

Files - 644CGI脚本- 755目录- 755您可以使用文件管理器修改权限,位于cPanel的"文件"类别,FTP客户端,或使用SSH/Bash中的chmod命令。

错误的。htaccess,无效的代码,命令或语法

.htaccess文件("。htaccess")中,您可能添加了措辞糟糕或冲突的行。解决这个问题的最佳方法是注释掉.htaccess.

中的行。

你可以通过在开头加上#来注释掉.htaccess中的一行。在做任何更改之前,最好保存文件的原始副本。

例如,如果.htaccess看起来像这样:

DirectoryIndex default.html
AddType application/x-httpd-php5 php

然后尝试这样做:

DirectoryIndex default.html
#AddType application/x-httpd-php5 php

虚线和以php_flag开头的行是最常见的错误。如果不能确定哪一行有问题,则注释掉每一行。

其他常见的。htaccess错误

FollowSymlinks

错误可能如下所示:

[Sun Jun 05 12:07:10 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: Option FollowSymlinks not allowed here

在这个例子中,这个错误很容易修复;在指定的文件中,使用允许的指令——在这种情况下使用"SymlinksIfOwnerMatches"而不是"FollowSymlinks",或者完全删除该行。

语法不封闭

错误可能如下所示:

 [Sun Jun 05 12:11:38 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: <IfModule>ExampleRule/Module> was not closed.

同样,解决方案是简单地修复语法,或者删除它。在这种情况下,结束";指令得当,把规则放到自己的行上去解决问题。

这些只是一些常见的例子,可能是由错误的。htaccess参数引起的。您遇到的错误可能会有所不同,但通常错误消息具有足够的描述性,无需进一步调查即可从中确定错误。

php.ini配置不正确

ForceType

当你使用的文件与(或不)扩展名不同,然后为该文件类型的正常扩展名,你可以在你的。htaccess文件中使用ForceType来明确服务器如何处理该文件(或文件夹中的所有文件)(这适用于服务器没有phpsuexec)。

一个例子:当你有一个名为"item"的文件(就像Nucleus使用的FancyURL的),并希望它被服务器解析为php,你使用以下代码在你的。htaccess文件:

ForceType application/x-httpd-php

但是,因为我们的服务器使用phpsuexec,这将导致内部服务器错误。为了解决这个问题,你可以简单地使用SetHandler而不是ForceType,所以你的。htaccess文件变成:

SetHandler application/x-httpd-php

php_value

在没有phpsuexec的服务器上,可以使用.htaccess文件中的php_value语句来更改php的设置(实际上覆盖php.ini中的设置)。在使用phpsuexec的服务器上,这也会导致服务器错误。为了解决这个问题,你可以使用一个php.ini文件,你把它放在同一个文件夹中,你会把你的。htaccess文件。在php.ini文件中,您可以更改所有php值。您只需将想要修改的值放入该文件中。例如,如果您想将short_open_tag设置为Off,您将使用short_open_tag?= off在你的。htaccess文件中。使用php.ini文件,结果如下:

[PHP]
short_open_tag = Off