500内部服务器错误的PHP文件不为HTML
我的网站只有4-5个静态页面。 index.html & index.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),为我解决了这个问题。