php文件的500内部服务器错误不适用于html

时间:2013-07-17 07:10:10

标签: php html apache internal-server-error

我的网站只有4-5个静态页面。 index.html & index.php 两者都在那里。 index.html工作正常。如果我改为index.php,它会给500 Internal Server Error。我不知道我的错误在哪里?

注意:的 如果我将 .htaccess 文件与php_flag display_errors 1一起使用,

显示Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

如果我将 .htaccess 文件与empty一起使用,

显示Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

如果我给../contact-us.php,它就会正确显示。

谢谢...

6 个答案:

答案 0 :(得分:128)

如果您的php代码有致命错误但关闭了错误显示,则会显示<500>内部服务器错误。您可以尝试这样来查看错误本身而不是500错误页面:

在您的php文件中:

ini_set('display_errors', 1);

在.htaccess文件中:

php_flag display_errors 1

答案 1 :(得分:64)

PHP文件必须具有设置为644的权限。任何包含PHP文件和PHP访问权限的文件夹(例如,上传文件)必须将权限设置为755.当处理任何文件或文件夹时,PHP将运行500错误权限设置为777!

答案 2 :(得分:2)

我知道这个问题很老,但是在尝试使用.htaccess文件进行重写时,我在Windows 8.1上遇到了这个问题。我的解决方案很简单,我忘了修改httpd.conf中的以下行

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

重新启动apache监视器,现在一切正常。只需将此作为答案发布,因为未来某人可能会遇到一个简单的修复问题。

祝你好运!

答案 3 :(得分:2)

我遇到了这个问题,因为我试图连接到MySQL,但我没有所需的包。我想出来是因为@Amadan的评论来检查错误日志。就我而言,我遇到了错误:Call to undefined function mysql_connect()

如果您的PHP文件有任何代码要与My-SQL数据库连接,那么您可能需要先安装php5-mysql。我收到此错误是因为我没有安装它。我的所有文件权限都很好。在Ubuntu中,您可以通过以下命令安装它:

sudo apt-get install php5-mysql

答案 4 :(得分:2)

它正在为我修复它的.htaccess文件中更改行结尾(从Windows CRLF到Unix LF)。

答案 5 :(得分:0)

谷歌在这里指导我,但它没有修复我的问题,这是一个非常普遍的问题,并且有各种原因,所以我在这里发布我的问题和解决方案以供参考,万一有人可能会在以后阅读。

500错误的另一个可能原因是header(...)函数中的语法错误,如下所示:

header($_SERVER['SERVER_PROTOCOL'] . '200 OK');

请注意服务器协议和状态代码之间应该有空格,因此它应该是:

header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');

因此,如果您的代码中包含http代码,我建议您检查一下http代码。