在 laravel 4 中显示错误
Posted
技术标签:
【中文标题】在 laravel 4 中显示错误【英文标题】:Display errors in laravel 4 【发布时间】:2013-11-24 13:40:31 【问题描述】:我知道有一个类似的问题:How to display errors on laravel 4?
但我完全不知道如何启用错误显示。我做了什么:
-
在 php.ini 中,我设置了“display_errors = On”、“error_reporting = E_ALL”、“error_log = /var/log/php_errors.log”
在 laravel 的配置 (app.php) - 调试模式
我查看了 /app/storage/logs(无日志)
我查看了 php_errors.log(这里只是一个简单的警告)
在虚拟主机配置中,我指定了 error.log 路径,但此处没有信息
我的代码很简单:
public function getTest()
// phpinfo();
echo $notExistingVar;
die('123');
我看不到“123”,而是收到 500 错误(在 Chrome 开发工具中查看)
-
当我更改某些内容时,我多次尝试“service apache2 restart”
而且我也试过直接在代码中通过ini_set指定设置
好像我错过了一些简单的东西,但我只看到了 WSOD。每时每刻。 非常感谢任何帮助
更新
至少
ini_set('display_errors', '1');
帮助。不在 php.ini 中,而是在 php 脚本文件本身中
【问题讨论】:
错误 500 几乎意味着任何事情。什么时候会弹出这个错误?你最后改变了什么?服务器错误日志告诉你什么? 如果您收到 500 错误 - 您需要查看您的 apache 日志或更高版本。删除部分代码,直到您进行基本的 Laravel 安装(或从基本安装开始以确保其正常工作)。 错误在我的示例中弹出 $notExistingVar (不存在),我什么也看不到。在实际项目中,我使用了语法错误的 Eloquent 方法。如果我得到正确的apache日志 - 我在虚拟主机中指出的那些? (如 /etc/apache2/sites-available/mysite)。如果属实,则没有任何信息。但我很确定 PHP 应该输出类似“var 不存在”之类的东西,不是吗? 没有。 PHP 自动定义变量,所以在你的情况下 var 只是空的,所以输出将为空白。 好吧,无论如何,当我尝试回显此变量时,或者例如,当我尝试使用不存在的函数时,我仍然会收到 500 错误 【参考方案1】:终于!
我指定了 App::error 回调并包含 403、404 和 500 个错误页面。我在 403.php 中输入了“403”之类的简单文本,在 404.php 中输入了“404”,但忘记在 500.php 中输入任何内容。我总是在 Chrome 中看到类似“服务器错误”的东西,而不是白页,所以完全忘记了这个回调。
当您指定 App::error 时,您将不会收到调试消息(无论在应用配置中将 debug 设置为 true 还是 false)
【讨论】:
【参考方案2】:Laravel 禁用 vendor\laravel\framework\src\Illuminate\Foundation\start.php 中的 display_errors
if ($env != 'testing') ini_set('display_errors', 'Off');
这为您提供以下选项之一
正如你建议的那样,稍后用
覆盖它ini_set('display_errors', 'On');
使用disable_functions directive禁用ini_set
将Laravel environment 设置为“正在测试”。
【讨论】:
以上是关于在 laravel 4 中显示错误的主要内容,如果未能解决你的问题,请参考以下文章