PHP生产服务器 - 打开错误消息

时间:2009-12-01 06:05:17

标签: php

之前已经以更一般的方式询问了这个问题。我想在生产服务器上的特定页面上显示错误消息,但我无法访问php.ini文件。在生产服务器上的特定PHP页面上启用所有错误和警告的最佳方法是什么?

我尝试了ERROR_REPORTING(E_ALL);

4 个答案:

答案 0 :(得分:32)

要启用错误,您必须在触发之前使用error_reporting(例如,在PHP脚本的开头)

error_reporting(E_ALL);

要显示错误,您应该配置display_errors

ini_set('display_errors', 'On');

(应该在生产服务器上禁用此项,这意味着您可能必须以这种方式启用它,即使在配置error_reporting后)


当然,所有这些都可以封装在if块中,以确保只有您可以看到错误消息 - 特别是如果您在实时生产网站上这样做;例如:

if ($_SESSION['is_admin'])
{
    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
}


为了让事情变得更漂亮,您可能还需要配置html_errors

ini_set('html_errors', 'On');

答案 1 :(得分:4)

你真的不应该在生产服务器上显示它们。最好的方法是创建一些日志系统。

请记住使其可重复使用!

答案 2 :(得分:1)

一个不同的方法是一起注册错误处理程序:set_error_handler

这样,您可以选择如何处理错误:将它们邮寄给管理员,显示友好的错误消息,登录到文件/数据库,...

答案 3 :(得分:1)

另外需要注意的是,您可能不仅希望显示错误,还要将它们记录到文件/数据库中。仅仅在生产环境中向用户显示错误是不够的;要求他们报告问题将导致您不知道您的服务器出了什么问题,直到为时已晚。在基本错误和异常处理程序中,确保具有记录问题的逻辑(尽可能多的调试信息 - 堆栈跟踪,用户IP,浏览器,应用程序版本等)到持久存储中。