localhost 页面不工作 localhost 当前无法处理此请求。 HTTP 错误 500
Posted
技术标签:
【中文标题】localhost 页面不工作 localhost 当前无法处理此请求。 HTTP 错误 500【英文标题】:The localhost page isn’t working localhost is currently unable to handle this request. HTTP ERROR 500 【发布时间】:2017-03-06 03:11:29 【问题描述】:当我看到这个页面时,我知道有一些 500 Internal Server Error,
本地主机页面不工作本地主机当前无法处理此请求。 HTTP 错误 500
我已经在我的php.ini
配置文件中设置了变量display_errors: On
和error_reporting : E_ALL
并重新启动了服务器。
我仍然看到相同的页面,而不是导致内部服务器错误的实际错误消息。为什么?
【问题讨论】:
500 是严重错误!日志中通常没有任何使用的详细信息。您将不得不查看您对脚本所做的操作是否会导致灾难性错误 因为是服务器错误而不是 PHP 错误。 问题出在 PHP 代码上,因为同一网站的其他页面加载正常。我只在一个 URL 上看到此错误,并且我知道 php 代码存在一些问题。我想知道的是为什么它不显示致命错误消息 你使用任何框架吗? 向我们展示您页面上的代码,然后我们可以帮助您。否则我们只是在黑暗中拍摄。 【参考方案1】:首先检查您的网络服务器指示的路径中的错误日志。 那么可能浏览器显示友好的错误消息,所以禁用它。
https://superuser.com/questions/202244/show-http-error-details-in-google-chrome
【讨论】:
【参考方案2】:它也许能解决你的问题,检查你的文件访问级别
$ sudo chmod -R 777 /"your files location"
【讨论】:
【参考方案3】:我使用的是 CakePHP,我看到了这个错误:
This page isn’t working
localhost is currently unable to handle this request.
HTTP ERROR 500
我去看了在 app\config\core.php 中定义的 CakePHP Debug Level:
/**
* 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,以显示错误和警告。
【讨论】:
【参考方案4】:当您错误地尝试使用 php_info() 之类的函数时,通常会发生此类错误。
<?php
php_info(); // 500 error
phpinfo(); // Works correctly
?>
仔细看看你的代码会更好。
【讨论】:
天啊。是真的,是旧版吗?【参考方案5】:这是一个 2 年前的问题的答案,以防其他人遇到同样的问题。
根据您提供的信息,文件(或多个文件)的权限问题将是相同的 500 内部服务器错误的原因之一。
要检查这是否是问题所在(如果您无法获得有关错误的更多详细信息),请导航到终端中的目录并运行以下命令:
ls -la
如果您看到有限的权限 - 例如-rw-------@
反对你的文件,那是你的问题。
然后解决方案是在问题文件上运行chmod 644
或在目录上运行chmod 755
。有关如何更改权限的详细说明,请参阅此答案 - How do I set chmod for a folder and all of its subfolders and files?。
作为背景,我在通过 Google Drive 从另一台 Mac 复制的某些文件上遇到了与您完全相同的问题,这些文件的传输剥夺了文件的大部分权限。
下面的截图说明了。具有-rw-------@
权限的index.php 文件会生成500 Internal Server Error,而具有-rw-r--r--@
权限的index_finstuff.php(内容完全相同!)则很好。更改 index.php 的权限可以立即解决问题。
换句话说,您的 PHP 代码和服务器可能都很好。但是,文件的有限读取权限可能会禁止服务器显示内容,从而导致显示 500 Internal Server Error 消息。
【讨论】:
【参考方案6】:如果您正在使用 codeigniter 框架并在 localhost 上测试项目,请打开项目文件夹的主 Index.php 文件并找到以下代码:
define('ENVIRONMENT', 'production');
改成
define ('ENVIRONMENT', 'development');
因为同样的,这个环境在你的 config 文件夹下的 database.php 文件中。 像这样:
'db_debug' => (ENVIRONMENT! == 'development')
所以两个地方的环境应该一样,问题就解决了。
【讨论】:
【参考方案7】:所以,最终我做了所有开发人员都讨厌做的事情。我去检查了服务器日志文件,发现第n行有语法错误的报告。
tail -n 20 /var/log/apache2/error.log
【讨论】:
【参考方案8】:只需确保您已正确命名数据库即可。 如果不是,则必须重命名它以使其与代码上的数据库匹配。
【讨论】:
以上是关于localhost 页面不工作 localhost 当前无法处理此请求。 HTTP 错误 500的主要内容,如果未能解决你的问题,请参考以下文章
laravel 项目在“http://localhost/public/”中不起作用,页面显示“此页面不起作用”
在 azure 上部署后 SignalR 无法正常工作。在 localhost 上工作