81

我的网站只有 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,它会正确显示。

谢谢...

4

6 回答 6

162

500 Internal Server Error is shown if your php code has fatal errors but error displaying is switched off. You may try this to see the error itself instead of 500 error page:

In your php file:

ini_set('display_errors', 1);

In .htaccess file:

php_flag display_errors 1
于 2013-07-17T07:14:06.883 回答
87

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

于 2015-12-16T03:10:40.030 回答
3

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

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

sudo apt-get install php5-mysql

于 2014-11-17T19:35:05.550 回答
3

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

于 2015-11-11T20:50:51.710 回答
2

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

#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

重新启动apache监视器,现在一切正常。只是将其发布为答案,因为将来有人可能会通过简单的修复遇到相同的问题。

祝你好运!

于 2014-03-08T18:15:37.533 回答
1

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

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

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

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

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

因此,如果您的代码中有 http 标头调用,我建议您检查它。

于 2015-07-31T14:38:45.953 回答