【问题标题】:PHP won't show any errorsPHP 不会显示任何错误
【发布时间】:2011-04-19 08:54:38
【问题描述】:

这是我的代码:

echo 'foo';

error_reporting(E_ALL);

echo 'this line doesnt end in a semi colon'

echo 'i should get an error here';

当我运行它时,我没有收到任何错误。

不确定这是怎么回事?

【问题讨论】:

  • 只有我喜欢tail -f 错误日志吗? :-)
  • @prodigitalson 取决于站点状态。对于developnemt,我更喜欢在屏幕上
  • I get no error. 表示I get all 3 lines printedI get a blank screen?
  • @Col。弹片,我得到一个空白屏幕。我添加了php_flag dislay errors 1。起初没有用。然后我在我的 apache2.conf 文件中添加了<Directory "/var/www/aquaplatinum">Order allow,deny Allow from all AllowOverride All </Directory> 并重新启动了 apache,现在出现了错误。
  • @Col。弹片:是的,即使是为了开发,我也更喜欢日志......这是因为我喜欢E_ALL|E_STRICT,但我不希望警告输出伪造 xhtml。另外,我通常直接在 Eclipse 中作为外部工具运行 tail :-)

标签: php error-reporting


【解决方案1】:
ini_set('display_errors', 1);

请注意,如果您在有语法错误的文件中执行此操作,它将不起作用,因为它永远不会被执行。你也可以在 php.ini 中设置为 true(不推荐用于生产服务器),或者如果你使用 Apache,在 .htaccess 中:

php_flag display_errors 1

【讨论】:

  • 所以 php_flag display_errors 1 应该始终显示所有错误? (因为不是我的情况)
  • 不,它只告诉完全显示错误。 error_reporting 配置值决定了显示的错误。
【解决方案2】:

error_reporting 指令不会帮助您在屏幕上显示错误消息。它负责显示 which 错误,而不是 where

如果您的 PHP 作为 Apache 模块运行(很可能是这样),则将以下行添加到 .htaccess 文件中:

php_value display_errors 1

当您切换到生产时,将其更改为

php_value display_errors 0
php_value log_errors 1

并在错误日志中观察它们。

【讨论】:

    【解决方案3】:

    您是否有任何类型的关闭挂钩、错误处理函数或全局异常捕获器正在运行?

    语法错误在大型框架中可能很奇怪:)

    【讨论】:

      猜你喜欢
      • 2016-02-11
      • 2013-09-23
      • 2021-02-27
      • 2012-05-26
      • 2014-06-16
      • 2011-09-21
      • 2016-11-21
      相关资源
      最近更新 更多