突然,我服务器上的所有.php文件都会导致INTERNAL SERVER ERROR。
我不知道它是否相关,但它是在我更新yum时开始的。
即使是空白的.php文件也会导致错误。我已经移动了我的所有网站内容,只尝试了一个空的.php文件,但仍然会出现同样的错误。
也没有.htaccess文件。
我该怎么办? = /
(同一台服务器上的其他网站工作正常)
Apache和php日志似乎没有更新。 Apache的最后一次是从今天开始,但与此问题无关。 PHP的最后一个来自APRIL
更新
我刚发现每个域都有自己的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
答案 0 :(得分:4)
我不确定,但有时它可能与文件的权限有关。在我使用的网络主机上,如果权限未设置为655,则会给出505; 777将给出500内部服务器错误。我的猜测是,在YUM的PHP发布更新中他们做了类似的事情,但这只是猜测。简而言之,检查文件权限,如果它们不是655,则尝试将它们更改为。
答案 1 :(得分:1)
尝试阅读日志。请记住,许多主机在超载时会抛出500内部服务器错误,即使php没有问题。当我或同一服务器中的其他人多收费时,它发生在我的共享主机帐户
如果等待服务器变得不那么繁忙或者你没有看到任何日志,那么你应该真正与你的托管支持人员交谈,这似乎与PHP本身无关,至少不在你身边。
答案 2 :(得分:0)
在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.
档案 - 644 CGI脚本 - 755 目录 - 755 您可以使用文件管理器修改权限,该文件管理器位于"文件" cPanel的类别,FTP客户端,或在SSH / Bash中使用chmod命令。
在.htaccess
文件(" dot htaccess")中,您可能添加了措辞错误或冲突的行。解决此问题的最佳方法是注释掉.htaccess中的行。
您可以通过在开头添加#来注释.htaccess中的一行。在进行更改之前,最好保存任何文件的原始副本。
例如,如果.htaccess看起来像这样:
DirectoryIndex default.html
AddType application/x-httpd-php5 php
然后尝试这样的事情:
DirectoryIndex default.html
#AddType application/x-httpd-php5 php
以php_flag开头的断行和行是最常见的错误。如果您无法确定哪一行是问题,那么请注释掉每一行。
错误可能如下所示:
[Sun Jun 05 12:07:10 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: Option FollowSymlinks not allowed here
在此示例中,错误很容易修复;在指定的文件中,使用allowed指令 - 在这种情况下使用" 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.
同样,解决方案是简单地修复语法,或删除它。在这种情况下,关闭结尾&#34;&#34 ;;指令正确并将规则放在他们自己的行上以解决问题。
这些只是一些可能由坏.htaccess参数引起的常见示例。您遇到的情况可能会有所不同,但通常情况下,错误消息的描述性足以确定其中的错误,而无需进一步调查。
当您使用(或不具有)扩展名不同于该文件类型的正常扩展名的文件时,您可以在.htaccess文件中使用ForceType,以使服务器清楚如何处理该文件(或所有文件)文件夹)(这适用于没有phpsuexec的服务器)。
一个例子:当你有一个名为&#34; item&#34;的文件时(就像Nucleus用于FancyURL的那些)并希望它被服务器解析为php你在.htaccess文件中使用以下代码:
ForceType application/x-httpd-php
但是,因为我们的服务器使用phpsuexec,这将导致内部服务器错误。要解决此问题,您只需使用SetHandler而不是ForceType,因此.htaccess文件将变为:
SetHandler application/x-httpd-php
在没有phpsuexec的服务器上,可以使用.htaccess文件中的php_value语句来更改php的设置(实际上会覆盖php.ini中的设置)。在具有phpsuexec的服务器上,这也将导致服务器错误。要解决此问题,您可以使用php.ini文件,该文件放在与放置.htaccess文件的文件夹相同的文件夹中。在那个php.ini文件中,你可以改变所有的PHP值。您只需将要修改的值放在该文件中即可。例如,如果你想将short_open_tag设置为Off,你会使用short_open_tag吗? = .htaccess文件中的off。使用php.ini文件会导致:
[PHP]
short_open_tag = Off