【问题标题】:php error reporting - having trouble matching local & web server settingsphp 错误报告 - 无法匹配本地和 Web 服务器设置
【发布时间】: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


【解决方案1】:
  1. 在 php ini 中设置date.timezone = "America/New_York"
  2. 在您的代码集中date_default_timezone_set()
  3. 在.htaccess 中设置php_value date.timezone "America/New_York"

当然,America/New_York 就是例子。

【讨论】:

    【解决方案2】:
    1. 不,E_STRICT 已经是其中最高的。保留它。

    2. 您在 localhost 上的 PHP 版本已过时。升级它。

    3. 然后将 date_default_timezone_set() 添加到应用程序的配置文件中,以便更正此错误可移植。

    【讨论】:

    • 作为替代方案,将 date.timezone = America/Chicago(或您的时区)放入 php.ini 文件中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多