繁体   English   中英

任何导致INTERNAL SERVER ERROR的.php文件

[英]Any .php file causing INTERNAL SERVER ERROR

突然,我服务器上的所有.php文件都会导致INTERNAL SERVER ERROR。

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

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

也没有.htaccess文件。

我该怎么办? = /

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

Apache和php日志似乎没有更新。 Apache的最后一次是从今天开始,但与此问题无关。 PHP的最后一个来自APRIL

UPDATE

我刚发现每个域都有自己的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

我不确定,但有时它可能与文件的权限有关。 在我使用的网络主机上,如果权限未设置为655,则会给出505; 777将给出500内部服务器错误。 我的猜测是,在YUM的PHP发布更新中他们做了类似的事情,但这只是猜测。 简而言之,检查文件权限,如果它们不是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。

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

Bad .htaccess,无效的代码,命令或语法

.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开头的虚线和线条是最常见的错误。 如果您无法确定哪个行是问题,那么注释掉每一行。

其他常见的.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

在这个例子中,错误很容易修复; 在指定的文件中,使用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.

同样,解决方案是简单地修复语法,或删除它。 在这种情况下,关闭结尾“”; 指令正确并将规则放在自己的行上以解决问题。

这些只是一些可能由坏的.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吗? = .htaccess文件中的off。 使用php.ini文件会导致:

[PHP]
short_open_tag = Off

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM