【问题标题】:How to configure PHP to display detailed errors instead of error 500 page?如何配置 PHP 以显示详细错误而不是错误 500 页面?
【发布时间】:2011-03-17 08:28:57
【问题描述】:

我在我的 IIS 主机上部署了一个 PHP 应用程序,我总是得到通用的 IIS“错误 500”页面,而不是详细的错误页面。

我知道我需要修改一些 php.ini 文件(来自this 问题)。

看来display_errors设置正确:

echo ini_get('display_errors');

输出1

我也尝试在导致错误的函数中设置 display_errors 和 error_reporting(我知道特定函数是问题,因为我手动修改了它)。

function sendEmail( $aForm, $sFile = 'messages.tpl', $sTargetEmail = null ){ 
  error_reporting(E_ALL);
  ini_set('display_errors', 'On');
  //rest of the function

编辑:我知道我应该在一些 php.ini 文件中设置这些值 - 当我只能通过 FTP 访问我的应用程序文件夹时,如何在共享主机上指定 php.ini 值?

如何识别错误详情?

【问题讨论】:

  • 服务器错误日志中是否记录了实际错误? (我之前在服务器上工作过,无法显示适当的错误 - 有时输出只是 blank!但是,错误日志正确报告了它 - 只是很痛苦继续检查!)
  • 大概您确实启用了 error_reporting(E_ALL)?您是否完全没有正确报告错误?还是仅与您的 sendMail() 脚本有关?就 mail() 而言,IIS 和 Apache 之间在这方面存在一些主要差异,这可能是负责任的?

标签: php iis error-handling shared-hosting


【解决方案1】:

在我看来,您确实打开了“display_errors”,但您的托管服务提供商正在将您的 500 错误页面重定向到不显示错误的自定义页面。不是一个很好的设置,但我会联系您的托管服务提供商,希望他们能对问题有所了解。 IIS 上可能有 .user.ini 文件,请参阅 see http://learn.iis.net/page.aspx/745/enable-per-site-php-configuration-on-iis-60-and-iis-7-and-above/ 再次,只有您的托管服务提供商会知道这是否已设置。

【讨论】:

    猜你喜欢
    • 2015-04-09
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多