【问题标题】:Fatal PHP Errors in IIS 7.5IIS 7.5 中的致命 PHP 错误
【发布时间】:2013-02-12 18:03:57
【问题描述】:

我想查看发生的任何 PHP 错误,即"Expected ; on line 5 of myfile.php" 之类的东西。不幸的是,我似乎无法弄清楚如何查看这些信息。

我设置了 E_ALL,display_errors ON,友好的错误消息被关闭,IIS 被设置为错误传递,我错过了什么?

用于在任何页面上显示如上所述的语法错误;他们不再这样做了。我们将服务器移至 localhost 进行开发,我想并没有完全模仿服务器配置。现在我被难住了。

在 IE 和 Chrome 上试过,都没有显示错误。

错误记录在 PHP 的日志文件中,但我仍然希望它们显示在页面上;至少现在。

更新:

刚刚尝试将ini_set('display_errors', 'on'); 直接添加到请求的页面中,现在它可以工作了.. 但是为什么呢?为什么需要在本地设置?我的 PHP.ini 文件已经声明了这个。

【问题讨论】:

  • 到底是什么问题,您是从 ajax 调用文件还是移动到另一台服务器?
  • 两者;我无法调试我的 AJAX,因为发生了致命错误,但我没有真正的方法来确定没有错误的错误是什么。我看到的问题是我的错误报告没有显示致命错误;我需要它。另一台服务器在浏览器中显示了致命错误,但我不知道是哪些配置导致了这种行为,我也无法在网上弄清楚。
  • 这仍然没有意义,因为如果使用 ajax 调用脚本,浏览器中不会显示 php 错误。或许我的回答可以帮到你。
  • 我知道它们没有显示在浏览器中,但它们曾经显示在响应中,然后我可以将其解析到调用页面中。

标签: php ajax error-handling iis-7.5


【解决方案1】:

好吧,看起来这一半是我自己的愚蠢,一半是自动安装的混乱。

原来有两个 php.ini 文件,而 IIS 使用位于主驱动器上 iis express 目录中的一个,而不是常规的 PHP 目录。

因此,对于遇到此问题的任何其他人,我提供了您必须费力解决错误的完整清单:

1) Turn off the IIS default error pages

2) Disable 'friendly error messages'

3) 确保您使用的是正确的 php.ini 文件,并根据需要更改参数。特别是error_reporting and display_errors

在浏览器中看到您需要的所有错误消息之前,所有这些都是必要的。

【讨论】:

    【解决方案2】:

    尝试使用:

    error_reporting (-1);
    

    对于 php

    另外,请确保设置了“display_errors”。

    ini_set( 'display_errors', 1 );
    

    【讨论】:

    • 我已经完成了后者; textStatus 只是“错误”,errorThrown 是“内部服务器错误”。我也无法从 jqXHR.responseText 中获得任何有用的信息,因为响应实际上是空的;发生致命错误并返回而不是错误,这是我需要的。请参阅我编辑的问题,因为我已经缩小了问题范围。
    • 啊,所以这可能与您的服务器设置有关。您有自定义错误处理程序还是使用 PHP 默认值?另外,哪个版本的php?
    • 根据PHP文件的news.txt21 Feb 2013, PHP 5.3.22。没有自定义处理程序。我已经尝试过像<?php echo "This is correct"; echo "This is not; ?> 这样简单的方法,以便在一个基本上为空的 PHP 文件上得到一个解析错误,没有报告错误,但没有任何输出。打开友好的错误消息,这只是一个内部服务器错误。
    • 还是没有运气。在我的 php.ini 中,我相信我将它设置为 E_ALL | E_STRICT
    • PHP 5.3.22 应该标记我.. 我知道我有一个更新的版本。请参阅我的自我回答。
    【解决方案3】:

    回答问题的第一部分;查看使用 ajax 时的错误:您可以使用浏览器的开发者工具查看服务器的确切响应。

    例如,在 FireBug for Firefox 中,您转到 Net 选项卡,您会看到所有 ajax 请求都在它们发生时弹出。打开其中一个请求将为您提供更多选项卡的概览,例如 ResponseHTML

    【讨论】:

    • 我也看不到我直接查看的错误 php 页面中的错误;问题(正如我刚才发现的那样)是错误显示本身;他们不存在。它没有显示解析错误。
    • @StuckAtWork 那么您可能应该将您的问题编辑为标题,并且第一部分似乎表明它与 ajax 有关。
    • 会的;一开始我以为是ajax之间的问题,但做了一些基本检查,发现任何地方都没有显示解析/致命错误。
    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 2011-08-14
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多