500内部服务器错误的PHP文件不为HTML

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

注意:如果我用php_flag display_errors 1使用.htaccess文件,

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

如果我用empty .htaccess文件,

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

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

谢谢…

500内部服务器错误显示,如果您的PHP代码有致命的错误,但错误显示被closures。 你可以尝试这个来看看错误本身,而不是500错误页面:

在你的php文件中:

 ini_set('display_errors', 1); 

在.htaccess文件中:

 php_flag display_errors 1 

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

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

 #LoadModule rewrite_module modules/mod_rewrite.so 

 LoadModule rewrite_module modules/mod_rewrite.so 

重新启动了Apache监视器,现在一切正常。 只是将其作为答案发布,因为未来某个人可能会通过简单的修复来解决同一个问题。

祝你好运!

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

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

sudo apt-get install php5-mysql

谷歌在这里引导我,但它并没有解决我的问题,这是一个非常普遍的问题,有各种各样的原因,所以我张贴我的问题和解决scheme在这里供参考,以防有人可能会稍后阅读。

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

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

请注意服务器协议和状态码之间应该有空格,所以应该是:

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

所以我build议检查你的http头调用,如果你有你的代码。

它正在修改.htaccess文件中的行结尾(从Windows CRLF到Unix LF),为我解决了这个问题。