jjzjj

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

coder 2024-04-27 原文

我不确定这个问题是否部分是由于 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/

有关php - 白屏死机 - 在 PHP/Vagrant 环境中没有显示错误 (Yii)的更多相关文章

  1. ruby-on-rails - Rails 编辑表单不显示嵌套项 - 2

    我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

    我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

  5. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  6. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  7. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  8. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  9. ruby-on-rails - link_to 不显示任何 rails - 2

    我试图在索引页中创建一个超链接,但它没有显示,也没有给出任何错误。这是我的index.html.erb代码。ListingarticlesTitleTextssss我检查了我的路线,我认为它们也没有问题。PrefixVerbURIPatternController#Actionwelcome_indexGET/welcome/index(.:format)welcome#indexarticlesGET/articles(.:format)articles#indexPOST/articles(.:format)articles#createnew_articleGET/article

  10. ruby-on-rails - 如何在 Rails View 上显示错误消息? - 2

    我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c

随机推荐