提问人:William Stewart 提问时间:3/4/2013 更新时间:3/5/2013 访问量:9083
PHP 错误抑制被忽略
PHP error suppression is being ignored
问:
我当前的php.ini文件设置为报告除弃用和严格标准以外的所有错误,如下所示:
error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED
使用此设置的原因是,我们迫切需要在托管我们网站的 linux 服务器上执行 PHP 升级;问题在于,弃用的功能和严格的标准建议将很快填满 170 多个网站的错误日志文件。这些错误主要是由于一些小事情造成的,例如函数未被声明为静态等。最终,我们将遍历所有站点并解决这些问题,但与此同时,我们需要抑制错误。
我在本地测试环境(运行我们希望升级到的PHP版本-5.4.3)上遇到的问题是错误仍然显示,之前打印了以下内容:
SCREAM: Error suppression ignored for
谁能告诉我为什么忽略错误抑制以及如何正确抑制错误?
提前致谢。
答:
8赞
hek2mgl
3/5/2013
#1
您似乎正在使用尖叫扩展。从手册:
尖叫扩展提供了禁用静音错误控制操作员的可能性,因此报告所有错误。此功能由 ini 设置控制。
Scream 是一个用于调试的扩展,旨在显示尽可能多的错误消息。这是通过忽略操作员并始终具有可用的最高error_reporating级别来完成的。(无论您的设置如何)。因此,您必须在php.ini中停用该扩展程序:@
error_reporting
scream.enabled = off
顺便说一句:我不会更新具有 170 个带有代码错误的网站的服务器。现在是一颗定时炸弹。最好将它们逐个站点迁移到新的PHP版本。也许在迁移过程中有两台服务器并行。
评论
0赞
William Stewart
3/7/2013
将 scream.enabled = Off 添加到php.ini文件并不能阻止错误抑制被忽略。目前,添加该行没有任何作用。我知道这是一种非常混乱的做事方法,但这只是暂时的。到目前为止,我还没有运气将另一个PHP实例安装为CGI,所以我正在寻找其他选择。有什么想法吗?
1赞
William Stewart
3/11/2013
我能够让PHP的第二个实例在我们的服务器上工作,感谢您的建议。
0赞
hek2mgl
3/12/2013
@WilliamStewart 对不起,我没有认出你的第一条评论。在不查看服务器的实际设置的情况下,我只能指出可以按脚本设置级别。也许您的 170 个站点中的一个或多个正在这样做?但是,常规的 PHP 错误消息不应包含“Scream:”前缀。关于第二条评论:我认为这是个好主意!error_reporting
评论