29

当我看到这个页面时,我知道有一些500 Internal Server Error ,

localhost 页面不工作 localhost 当前无法处理此请求。HTTP 错误 500

我已经在我的配置文件中设置了变量display_errors: On并重新启动了服务器。error_reporting : E_ALLphp.ini

我仍然看到相同的页面,而不是导致内部服务器错误的实际错误消息。为什么?

4

8 回答 8

13

它可能会解决您的问题,请检查您的文件访问级别

$ sudo chmod -R 777 /"your files location"
于 2017-02-22T04:08:47.273 回答
7

这是一个 2 年前的问题的答案,以防其他人遇到同样的问题。

根据您提供的信息,文件(或文件)的权限问题将是相同的 500 Internal Server Error 的原因之一。

要检查这是否是问题所在(如果您无法获得有关错误的更多详细信息),请导航到终端中的目录并运行以下命令:

ls -la

如果您看到有限的权限 - 例如-rw-------@针对您的文件,那么这就是您的问题。

然后解决方案是chmod 644在问题文件或chmod 755目录上运行。请参阅此答案-如何为文件夹及其所有子文件夹和文件设置 chmod?- 有关如何更改权限的详细说明。

作为背景,我在通过 Google Drive 从另一台 Mac 复制的一些文件上遇到的问题与您在某些文件上遇到的问题完全相同,这些文件的传输剥夺了文件的大部分权限。

下面的屏幕截图说明了这一点。具有权限的 index.php 文件会-rw-------@生成500 Internal Server Error,而具有权限的 index_finstuff.php (内容完全相同!)-rw-r--r--@则很好。更改 index.php 的权限可以立即解决问题。

换句话说,您的 PHP 代码和服务器可能都很好。但是,文件的有限读取权限可能会禁止服务器显示内容,从而导致显示 500 Internal Server Error 消息。

在此处输入图像描述

于 2018-10-18T11:30:54.027 回答
6

我正在使用 CakePHP,我看到了这个错误:

This page isn’t working
localhost is currently unable to handle this request.
HTTP ERROR 500

我去看了在 app\config\core.php 中定义的 CakePHP 调试级别:

/**
 * CakePHP Debug Level:
 *
 * Production Mode:
 *  0: No error messages, errors, or warnings shown. Flash messages redirect.
 *
 * Development Mode:
 *  1: Errors and warnings shown, model caches refreshed, flash messages halted.
 *  2: As in 1, but also with full debug messages and SQL output.
 *  3: As in 2, but also with full controller dump.
 *
 * In production mode, flash messages redirect after a time interval.
 * In development mode, you need to click the flash message to continue.
 */
Configure::write('debug', 0);

我将值从 0 改为 1:

Configure::write('debug', 1);

进行此更改后,再次尝试重新加载页面时,我看到了相应的错误:

Fatal error: Uncaught Exception: Facebook needs the CURL PHP extension.

结论:在我的情况下,查看错误的解决方案是将 CakePHP 调试级别从 0 更改为 1,以显示错误和警告。

于 2017-05-12T17:57:44.723 回答
4

当您尝试错误地使用 php_info() 之类的函数时,通常会发生这种错误。

<?php 
     php_info(); // 500 error
     phpinfo(); // Works correctly
?>

仔细看看你的代码会更好。

于 2018-06-05T10:13:32.907 回答
4

所以,最终我做了所有开发人员都讨厌做的事情。我去检查了服务器日志文件,在第 n 行发现了一个语法错误的报告。

tail -n 20 /var/log/apache2/error.log
于 2020-03-18T11:48:02.820 回答
2

如果您正在使用 codeigniter 框架并在 localhost 上测试项目,请打开项目文件夹的主 Index.php 文件并找到以下代码:

define('ENVIRONMENT', 'production');

将其更改为

define ('ENVIRONMENT', 'development');

因为同样这个环境在你的 config 文件夹下的 database.php 文件中。像这样:

 'db_debug' => (ENVIRONMENT! == 'development')

所以两个地方的环境应该是一样的,问题就解决了。

于 2019-11-24T21:55:09.223 回答
0

只要确保你已经很好地命名了你的数据库。如果不是,您必须重命名它,使其与代码上的数据库匹配。

于 2021-08-26T12:52:56.237 回答
0

首先检查您的网络服务器指示的路径中的错误日志。然后也许浏览器显示友好的错误消息,所以禁用它。

https://superuser.com/questions/202244/show-http-error-details-in-google-chrome

于 2016-10-24T11:16:47.463 回答