初学者学php错误提示关了咋开_初学者学php开错误提示法【排错】
技术百科
看不見的法師
发布时间:2026-01-19
浏览: 次 PHP错误提示默认关闭,需通过php.ini设display_errors=On和error_reporting=E_ALL并重启服务器;临时开启可用ini_set();白屏时应查error_log日志。
PHP 错误提示默认常被关闭,尤其是用 XAMPP、WAMP 或宝塔等集成环境时——不是 PHP 本身不报错,而是 display_errors 被设为 Off,或 error_reporting 级别太低。打开它,是调试最基础也最关键的一步。
确认当前错误报告级别和显示开关
光改配置不一定生效,得先看 PHP 实际加载的是哪个 php.ini 文件,以及运行时的设置是否被覆盖。
- 新建一个
info.php文件,内容为: - 浏览器访问该文件,搜索
Loaded Configuration File,找到真实生效的php.ini路径 - 再搜索
display_errors和error_repor,看它们的
ting
Local Value(运行时值)是否为Off或0
在 php.ini 中永久开启错误提示
编辑上一步查到的 php.ini,找到并修改以下两行(注意:不要只改注释掉的那行,要改实际生效的行):
display_errors = On error_reporting = E_ALL
改完必须重启 Web 服务器(如 Apache 或 Nginx),否则不生效。Windows 下重启 WAMP/XAMPP 的服务图标;Linux 宝塔面板点「重启」PHP 服务即可。
-
E_ALL包含所有错误、警告、通知,适合开发阶段 - 生产环境绝不能设
display_errors = On,会暴露路径、变量、数据库结构等敏感信息 - 如果找不到这两行,可直接在
[XDebug]段落下方或文件末尾追加,但需确保没被其他地方用ini_set()覆盖
临时开启(无需改配置,适合测试)
在 PHP 脚本开头加入这几行,能绕过 php.ini 限制(但前提是 display_errors 没被系统级禁用,如某些共享主机):
注意:display_startup_errors 控制 PHP 启动阶段错误(如扩展没加载)是否显示,常被忽略,但它对排查“页面空白”特别有用。
- 这段代码必须放在所有输出之前(包括空格、BOM 字符),否则会报
Cannot modify header information - 如果仍不显示错误,说明服务器禁用了
ini_set(),此时只能靠改php.ini或联系管理员
为什么开了还看不到错误?常见卡点
开了配置却还是白屏或 500,往往不是没开,而是错误类型或触发时机不对。
- 语法错误(如少分号、括号不匹配)发生在解析阶段,
display_errors = On有效;但若启用了 OPcache 且缓存了旧文件,可能看到的是旧报错或无报错——清空 OPcache 或临时关掉它 - 致命错误(
Fatal error)默认会被显示,但Parse error在 CLI 模式下才一定输出到终端,Web 模式依赖display_errors - 某些框架(如 Laravel)或 CMS(如 WordPress)会接管错误处理,屏蔽原生提示——先在入口文件(如
index.php)顶部加临时error_reporting,再逐步排查 - 日志没开:
log_errors = On和error_log = /path/to/php_error.log建议一并打开,白屏时直接查日志最可靠
真正麻烦的不是“怎么开”,而是开了之后发现错误藏在 include 文件里、或者被 try-catch 吞掉了。盯着 error_log 文件比反复刷网页更省时间。
# wordpress
# windows
# word
# linux
# Error
# 数据库
# bom
# try
# catch
# php
# apache
# nginx
# include
# laravel
# cms
# 宝塔面板
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Go 语言标准库为何不提供泛型切片的 Contai
- 如何使用Golang理解结构体指针方法接收者_Go
- c++如何打印函数堆栈信息_c++ backtra
- Python日志系统设计与实现_高可观测性架构实战
- 如何使用Golang实现路由分组管理_Golang
- c# await 一个已经完成的Task会发生什么
- 如何使用Golang recover捕获panic
- 如何使用Golang构建基础消息队列模拟_Gola
- 如何提升Golang JSON序列化性能_Gola
- php会话怎么开启_session_start函数
- Win10怎么设置开机密码_Windows10账户
- php打包exe后无法读取环境变量_变量配置方法【
- 如何使用Golang捕获测试日志_Golang t
- LINUX怎么查看进程_LINUX ps命令查看运
- Win11怎么设置默认PDF阅读器 Win11修改
- PHP主流架构怎么部署到Docker_容器化流程【
- c++怎么操作redis数据库_c++ hired
- Win10如何关闭安全中心所有通知 Win10禁用
- c++ try_emplace用法_c++ map
- Win11怎么更改鼠标指针方案_Windows11
- Win11怎么自动隐藏任务栏_Win11全屏显示设
- 如何使用Golang处理静态文件缓存_提高页面加载
- GML (Geography Markup Lan
- Win10怎么卸载迅雷_Win10彻底卸载迅雷方法
- c++如何判断文件是否存在_c++ filesys
- PythonFastAPI项目实战教程_API接口
- 如何将文本文件中的竖排字符串转换为横排字符串
- PHP的FastAdmin架构适合二次开发吗_特点
- Win11笔记本怎么看电池健康度_Win11电池报
- php修改数据怎么改富文本_update更新htm
- 如何用正则与预处理结合精准拦截拼接式垃圾域名
- PHP主流架构怎么监控运行状态_工具推荐【操作】
- Win11怎么开启远程桌面_Win11系统远程桌面
- Win11怎么设置快速访问_Windows11文件
- Windows怎样关闭桌面弹窗广告_Windows
- Win11怎么快速锁屏_Win11一键锁屏快捷键W
- c++中如何求一个数的平方根_c++ sqrt函数
- 如何使用Golang实现微服务状态监控_Golan
- Win11讲述人怎么关闭_Win11误触开启语音朗
- Linux怎么设置磁盘配额_Linux系统Quot
- c# Task.ConfigureAwait(tr
- PHP 中如何在函数内持久修改引用变量所指向的目标
- c++如何用AFL++进行模糊测试 c++ Fuz
- VSC怎么在PHP中调试MySQL_数据库交互排查
- 如何使用Golang实现多重错误处理_Golang
- 如何在Golang中实现并发消息队列消费者_Gol
- 如何使用Golang template生成文本模板
- Win10如何备份注册表_Win10注册表备份步骤
- 如何解决同一段404代码在不同主机上表现不一致的问
- Mac上的iMovie如何剪辑视频?(新手入门教程


QQ客服