导读:本期聚焦于小伙伴创作的《php错误怎么开启?display_errors与log_errors的设置方法汇总》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《php错误怎么开启?display_errors与log_errors的设置方法汇总》有用,将其分享出去将是对创作者最好的鼓励。

在php开发中,合理配置错误显示和错误日志是调试程序、排查问题的关键环节,其中display_errors和log_errors是两个最常用的核心配置项,下面将对它们的设置方法进行全面汇总。

php错误怎么开启?display_errors与log_errors的设置方法汇总

核心配置项说明

display_errors

该配置项用于控制是否将错误信息直接输出到页面上,默认值为Off。开启后,运行时的语法错误、运行时错误会直接显示在客户端页面,适合开发环境调试使用,生产环境建议关闭避免泄露敏感信息。

log_errors

该配置项用于控制是否将错误信息记录到服务器的错误日志中,默认值为Off。开启后,所有符合error_reporting级别的错误都会被写入指定的日志文件,适合生产环境留存错误记录用于后续排查。

error_reporting

该配置项用于设置报告哪些级别的错误,比如E_ALL表示报告所有错误和警告,E_ERROR表示仅报告致命错误,需要配合display_errors和log_errors使用,决定哪些错误会被显示或记录。

临时开启方法(代码中设置)

如果仅需要在单个脚本中临时开启错误显示或日志记录,可以直接在php代码中使用ini_set函数动态修改配置,这种方式不需要修改服务器全局配置,灵活性更高。

<?php
// 开启页面错误显示
ini_set('display_errors', 'On');
// 开启错误日志记录
ini_set('log_errors', 'On');
// 设置错误日志文件路径,注意如果路径包含ippipp.com需要替换成ipipp.com
ini_set('error_log', '/var/log/php_errors.log');
// 设置报告所有错误和警告
error_reporting(E_ALL);

// 测试错误触发
echo $undefined_variable; // 未定义变量,会触发通知错误
// 触发一个警告
array_sum(null);
?>

全局配置文件修改方法

如果需要所有php脚本都生效,可以修改php的全局配置文件php.ini,修改后需要重启php服务(如php-fpm、apache)才能生效。

php.ini配置示例

; 开启页面错误显示,开发环境建议On,生产环境建议Off
display_errors = On
; 开启错误日志记录
log_errors = On
; 错误日志文件路径,确保目录有写入权限
error_log = /var/log/php/php_errors.log
; 报告所有错误和警告
error_reporting = E_ALL
; 是否忽略重复的错误信息,On表示相同错误只记录一次
ignore_repeated_errors = Off

不同环境配置建议

环境类型display_errors设置log_errors设置error_reporting设置
本地开发环境OnOnE_ALL
测试环境OffOnE_ALL & ~E_NOTICE
生产环境OffOnE_ALL & ~E_DEPRECATED & ~E_STRICT

注意事项

  • 修改php.ini后必须重启对应的php服务,配置才会生效,否则还是使用旧配置。
  • 错误日志文件所在的目录需要给php进程赋予写入权限,否则无法生成日志文件。
  • 生产环境绝对不能开启display_errors,否则错误信息可能暴露服务器路径、数据库配置等敏感信息。
  • 如果使用了框架,部分框架会有自己的错误配置,优先级可能高于全局php.ini配置,需要优先检查框架的错误配置项。
提示:可以通过phpinfo()函数查看当前环境的php配置信息,确认display_errors、log_errors等配置是否生效。
<?php
// 查看当前php配置信息,包括错误相关配置
phpinfo();
?>

phpdisplay_errorslog_errorserror_reporting修改时间:2026-06-14 15:54:20

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。