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

PHP生产服务器-打开错误消息,php,Php,这个问题以前曾以更一般的方式提出过。我想在生产服务器上的特定页面上显示错误消息,但我无权访问php.ini文件。在生产服务器的特定PHP页面上启用所有错误和警告的最佳方法是什么 我尝试了错误报告(E_ALL)要启用错误,必须在触发错误的点之前使用(例如,在PHP脚本的开头): 要显示错误,应配置: (应该在生产服务器上禁用此选项,这意味着您可能必须以这种方式启用它,即使在配置了错误报告之后也是如此。) 当然,所有这些都可以封装在if块中,以确保只有您才能看到错误消息——特别是如果您在现场制作网

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


我尝试了
错误报告(E_ALL)

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

要显示错误,应配置:

(应该在生产服务器上禁用此选项,这意味着您可能必须以这种方式启用它,即使在配置了
错误报告之后也是如此。


当然,所有这些都可以封装在
if
块中,以确保只有您才能看到错误消息——特别是如果您在现场制作网站上执行此操作;例如:

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

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


另一种方法是将错误处理程序注册为:set\u error\u handler


通过这种方式,您可以选择如何处理错误:将它们发送给管理员,显示友好的错误消息,登录到文件/db,…

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

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


请记住,使其可重复使用

这听起来很有趣,将它们发送到我的电子邮件会特别有用,我会读一些关于这方面的文章。我喜欢在管理员登录时打开错误的想法,然后每当我检查网站时,我就可以立即看到错误,而不必打开错误。谢谢你的欢迎(我有时也会使用这个技巧——这是一个简单的方法,无论如何比浏览日志文件容易得多):-)玩得开心!我已经将这个答案作为“如何打开错误报告?”的标准答案添加到PHP标签wiki中。
ini_set('display_errors', 'On');
if ($_SESSION['is_admin'])
{
    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
}
ini_set('html_errors', 'On');