【发布时间】:2011-01-29 07:00:07
【问题描述】:
我正在尝试向我的站点添加一个自定义错误处理程序,但这样做发现我的虚拟主机的 PHP 错误报告设置和我的本地主机(默认 XAMPP)的设置有很大差异。
虽然我认为我像一个好孩子一样对 E_STRICT 进行编程,但将错误处理程序添加到我的虚拟主机时会发现大量运行时通知。示例:
Runtime notice
strtotime() [function.strtotime]: It is not safe to rely on the system's timezone
settings. Please use the date.timezone setting, the TZ environment variable or
the date_default_timezone_set() function. In case you used any of those methods
and you are still getting this warning, you most likely misspelled the
timezone identifier. We selected 'America/Chicago' for 'CST/-6.0/no DST' instead
In /home/...
显然,这不是一个红色警报,显示停止错误。但困扰我的是它没有出现在我的本地主机上。我当然想通过解决这些问题来改进我的代码如果我能看到它们!
我查看了两个php.ini 文件,我的网络主机设置是error_reporting = E_ALL & ~E_NOTICE,而我的是error_reporting = E_STRICT,我认为这更好。但是,将我的更改为匹配并重新启动服务器似乎没有完成任何事情。
有人可以指点我正确的方向吗?
编辑 - 看来我没有说清楚。我知道如何解决通知发现的问题。 我的问题 是我的开发 PHP 和我的虚拟主机的 PHP 没有抛出相同级别的错误。网络主机正在报告这些运行时通知,而我的测试平台没有。而且我不知道如何让我的测试平台显示这些错误。
【问题讨论】:
-
为什么不改正错误而不是更改报告级别?
-
我想要更正错误,但目前我只能在虚拟主机上看到这些错误消息。本地主机上的相同文件不会触发任何错误,因此我假设两台服务器之间的错误报告级别存在差异。如果我只能在实时安装中进行调试,那就太麻烦了! :-(
-
我明白了,一开始看错了,抱歉
-
您确定您正在编辑正确的 php.ini 文件吗?设置相同的 error_reporting 级别并重新启动服务器应该会产生相同的输出,也许可以在 ?
-
我用过phpinfo。网络主机从 2010/12/15 开始运行 5.2.15,而我的 XAMPP 安装从 2009/11/20 开始运行 5.3.1。我要更新本地版本,看看效果如何。
标签: php error-handling