联系QQ 284710375
首页 > 技术分享 > LNMP|WAMP
收藏

PHP开启错误提示显示所有错误,PHP禁止屏蔽错误2024-09-04 14:59:49

大潇博客 原创文章,转载请标明出处

方法一:在运行时更改配置,可以使用ini_set()函数

ini_set("display_errors", "On");    //打开错误提示

ini_set("error_reporting",E_ALL); //显示所有错误

可以写一个函数,显示所有的PHP报错,在各种调试时使用

function show_all_errors(){

if(!ini_get('display_errors')){

        ini_set('display_errors','On');

}

error_reporting(E_ALL);

}


方法二:修改配置文件php.ini

打开配置文件php.ini,搜索到以下几行配置指令:

display_errors = Off

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

将display_errors设置为On以便显示错误

display_errors = On

将error_reporting错误级别修改为显示所有错误和警告

error_reporting = E_ALL


error_reporting错误级别包括:

E_ALL              - 所有错误和警告(包括PHP 5.4.0中的E_STRICT)

E_ERROR         - 致命的运行时错误

E_RECOVERABLE_ERROR - 几乎致命的运行时错误

E_WARNING - 运行时警告(非致命错误)

E_PARSE - 编译时解析错误

E_NOTICE - 运行时通知(这些通常是警告,从您的代码中的错误,但它可能是故意的(例如,使用未初始化的变量和赖于它自动初始化为一个事实空字符串)

E_STRICT - 运行时通知,允许PHP建议更改您的代码将确保最佳的互操作性,并转发代码的兼容性

E_CORE_ERROR - PHP初始启动期间发生的致命错误

E_CORE_WARNING - PHP期间发生的警告(非致命错误),初次启动

E_COMPILE_ERROR - 致命的编译时错误

E_COMPILE_WARNING - 编译时警告(非致命错误)

E_USER_ERROR - 用户生成的错误消息

E_USER_WARNING - 用户生成的警告消息

E_USER_NOTICE - 用户生成的通知消息

E_DEPRECATED - 警告代码在将来的PHP版本中不起作用

E_USER_DEPRECATED - 用户生成的弃用警告


error_reporting最常见的几种设置:

E_ALL (显示所有错误,警告和通知,包括编码标准。)

E_ALL & ~E_NOTICE (显示所有错误,通知除外)

E_ALL & ~E_NOTICE & ~E_STRICT (显示所有错误,通知和编码标准警告除外。)

E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (仅显示错误)


方法三:记录错误日志,不直接显示

打开配置文件php.ini,找下并修改以下配置:

display_errors = Off              //关闭错误提示

error_reporting = E_ALL       //显示所有错误

log_errors = On                    //开启错误日志

error_log = /path/error.log    //错误日志路径

注意,出于安全考虑,通常不建议在生产环境中显示所有错误。推荐记录错误日志,这样不仅可以保持良好的用户体验,同时还能把错误信息保存到指定的日志文件中,以备我们定期检查。


如果上面配置无效,可在php-fpm配置文件中开启下面的配置:

catch_workers_output = yes   //错误输出选项开启,如果没有添加

在我测试的PHP8中,无需开启此项就能保存错误日志,如果是低版本等出现其它问题时,不妨做个参考。


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311