gpt4 book ai didi

php - 白屏死机 - 在 PHP/Vagrant 环境中没有显示错误 (Yii)

转载 作者:可可西里 更新时间:2023-11-01 00:20:30 24 4
gpt4 key购买 nike

我不确定这个问题是否部分是由于 vagrant 造成的,但是我在运行 Unix 的 Vagrant box 中安装了 Yii 1.x。

我试图强制执行一个简单的 PHP 错误,例如 Controller 中缺少分号,即使我 100% 确定我创建了一个错误,但我没有看到带有堆栈跟踪的标准 Yii 错误页面。这在以前是有效的,尽管最近似乎已经停止以这种方式工作。

奇怪的是 - Yii 在脚本底部输出数据库查询(这是有意的,但我不明白为什么 Yii 只显示数据库查询。

我的个人配置如下:(只展示了一部分..)

我已经尝试了下面的代码并检查了日志但没有成功

ini_set('display_errors',true);
error_reporting(E_ALL);

任何人都可以提出任何想法......

return array(
'yiiDebug' => true,
'yiiTraceLevel' => 6,
.....


'components'=>array(
'log' => array(
'class' => 'CLogRouter',
'routes' => array(
'web' => array(
'class' => 'CWebLogRoute',
'levels' => 'profile, trace, info, error, warning, application', // profile, trace, info, error, warning, application
'showInFireBug' => false
),
'file' => array(
'class' => 'CFileLogRoute',
'levels' => 'error, warning, watch', // error, warning, watch
'categories' => 'system.*',
),
array(
'class' => 'CProfileLogRoute',
'levels' => 'error, warning, trace, info, profile', // error, warning, trace, info, profile
),
),
),
),

例如...在我的一个 Controller 中,我有以下代码:

public function actionDelete($id)
{
$model = $this->loadModel($id);
5e55 // added error here on purpose
}

我预计第 2 行会出现关于 5e55 的错误,但我看到的不是错误而是白屏(加上显示所有查询等的 Yii 应用程序日志) - 如果我删除 yii 配置内容以输出查询,我会得到 100% 的白色/空白屏幕。

我已经尝试在 index.php 引导文件中添加各种东西,但没有任何乐趣,我的配置看起来相对正常,但我不明白为什么向浏览器或我的日志报告错误。

最佳答案

你通过设置做了正确的事情

ini_set('display_errors',true);
error_reporting(E_ALL);

...但是有几个原因可能导致这实际上没有生效。

1) 脚本中的“稍后”内容可能会再次关闭错误报告。因为这些设置基本上只是全局变量,任何人都可以设置它们,而且大多数框架都有禁用它们的地方。根据您的代码“包含”的位置,链中的其他内容可能会调用 display_errors - false。

2) 可以在运行时禁用更改设置。您的环境可能有类似 php_admin_flag 指令的东西来阻止 display_errors 被打开。

如果您完全能够获得输出,请尝试运行它来转储所有 ini 设置的状态:

var_dump(ini_get_all());

但我认为可能发生的事情是您自己的一个文件中有一个小的语法错误,并且解释器完全放弃了该代码。它从未执行过,因此您的 display_errors 设置甚至没有运行。

正如其他人所建议的那样,查看您的错误日志可能会告诉您发生了什么。

另一种笨拙但有用的方法是尝试在命令行上执行您的文件,看看它是否给出语法警告。我不熟悉 Yii,但找到你最近编辑过的文件并运行它:

php -f yourproject/somefile_ofyours.php

它可能会吐出这样的错误:

PHP Parse error:  syntax error, unexpected 'xxxxx' (T_STRING) in somefile_ofyours.php on line 27

关于php - 白屏死机 - 在 PHP/Vagrant 环境中没有显示错误 (Yii),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com