我正在运行 ubuntu 10.04 + nginx + php-fpm 5.4
如果我display_errors = On
在 php.ini 中设置所有错误都会打印出来。如果相反,我将其设置为关闭,然后使用 ini_set('display_errors, '1'); 直接在脚本中它们也会显示,但不会显示解析错误,只是一个空白页。我也尝试使用 error_reporting 和 E_STRICT,但我找不到方法!
我正在运行 ubuntu 10.04 + nginx + php-fpm 5.4
如果我display_errors = On
在 php.ini 中设置所有错误都会打印出来。如果相反,我将其设置为关闭,然后使用 ini_set('display_errors, '1'); 直接在脚本中它们也会显示,但不会显示解析错误,只是一个空白页。我也尝试使用 error_reporting 和 E_STRICT,但我找不到方法!
如果你禁用display_errors
它php.ini
,然后在你的 PHP 脚本中启用它ini_set()
,它只会在包含该ini_set()
调用的行被执行后启用。
解析错误甚至在 PHP 脚本启动之前就发生了——在解析 PHP 文件时(因此称为“解析错误”名称)。
这意味着它们发生在您ini_set()
甚至有机会被执行之前 - 这意味着,在您的情况下,display_errors
当解析错误发生时未启用;因此,您不会得到任何显示。
在回答这个问题多年后,我在这里,但我找到了解决这个问题的方法。
对于我正在编写的脚本,我创建了第二个脚本,其中包含 ini_set() 指令,然后是我真正正在处理的脚本的包含。
与,这里是 test_run.php
<?php
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
include('./my_script.php');
?>
除了打开display_errors
,您还可以查看错误日志。通常,运行 Ubuntu + apache,您的错误日志将位于/var/log/apache2/error_log
. 要实时观看正在发生的事情,您可以运行类似tail -f /var/log/apache2/error_log
.
有时这比使用 php 设置更简单。
**您必须在 php.ini 文件中启用错误显示 **
我已添加(未注释)以下行,现在正在显示解析错误。
error_reporting
Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Development Value: E_ALL
Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
试试error_reporting(E_ALL);
。或文档