zoukankan      html  css  js  c++  java
  • 服务器出现500错误的时候,让PHP显示错误信息

    用PHP开发程序时,如果服务器出现500的时候,如果无法知道究竟是什么原因,就无法进行调试。

    要让PHP显示错误信息,可以从PHP配置文件 (php.ini)或PHP程序文件入手,另外,如果与IIS整合的时候,还必须考虑web.config文件。

    1.如果是与IIS整合的方式,则需要修改web.config文件,对<system.webServer>项添加<httpErros>条目:

    <system.webServer>
        <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"></httpErrors>
    </system.webServer>

    2.php.ini涉及的修改为:

    error_reporting = E_ALL        设置错误记录的级别,E_ALL为报告所有 PHP 错误,通常在调试错误的时候设置为此。非调试时一般为E_ALL加排除形式。注意修改完后需要重启APACHE或IIS。

                         其它常见的值为:E_WARNING,E_NOTICE,E_DEPRECATED,这些通常作为排除形式,在非调试情况下与E_ALL搭配使用,比如:

                         E_ALL  ^  E_DEPRECATED  :  报告所有错误但不报告过期(或即将过期)的提示,通常用于旧程序上使用了即将过期方法产生错误时,比如使用了mysql_connect导致过期错误500.

                       

    log_errors = On             On开启设置错误日志,将相应级别的错误记录到文件,与error_log项相搭配使用

    error_log = c:phperror.log       配置错误日志文件位置,方便在浏览器不显示错误时可以将错误记录到文件。当log_errors为On且配置的日志文件没有权限时,错误信息不写入日志文件而是直接输出到浏览器 (这一点在“不想显示错误信息”时要特别注意)

    display_errors = On    On如果有相应级别的错误,将错误显示到浏览器上。注意,受到error_reporting的限制,如果error_reporting为0(即不记录任何错误)时,则不显示任何错误,如果error_reporting为排除了某些形式时,则不显示某些形式的错误。对于“想要显示错误信息”时,log_errorserror_log不配置也行,直接配置display_errors为On

    3. PHP程序文件涉及的修改为:

        程序文件中的修改项与PHP.INI文件大概一致,优化级高于PHP.INI。相应条项如:

            error_reporting(E_ALL);

            ini_set('log_errors','On');

            ini_set('error_log','./log.txt');

            ini_set('display_errors','On');

          对于不想修改PHP.INI然后重启APACHE或IIS的情况下,可以使用这种方式,如果不行,再修改PHP.INI。

  • 相关阅读:
    Git常用命令
    C++ 四种强制类型转换
    Linux系统日志及日志分析
    C/C++中的getline函数总结:
    标准C++中的string类的用法总结
    C++中map的基本操作和使用;
    一个C++类的注释:
    C++ 中宏的使用 --来自:http://blog.csdn.net/hgl868/article/details/7058906
    c++ 的vector
    c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
  • 原文地址:https://www.cnblogs.com/dreamyoung/p/13418880.html
Copyright © 2011-2022 走看看