初学者学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; ?>
】
相关推荐
- MAC怎么一键隐藏桌面所有图标_MAC极简模式切换
- 如何使用正则表达式批量替换重复的星号-短横模式为固
- c++如何连接Redis c++ hiredis库
- c++ try_emplace用法_c++ map
- Win10电脑C盘红了怎么清理_Windows10
- Win10怎样卸载DockerDesktop_Wi
- 如何使用Golang encoding/json解
- Windows如何查看和管理已安装的字体?(字体文
- 使用类变量定义字符串常量时如何实现类型安全的 Li
- Windows的便笺功能如何使用?(桌面备忘技巧)
- MAC怎么解压RAR格式文件_MAC第三方解压工具
- php串口通信波特率怎么选_根据硬件手册设置正确波
- 使用类变量定义字符串常量时的类型安全最佳实践
- 本地php环境出现502错误_nginx或apac
- Win11时间不对怎么同步_Win11自动校准互联
- 如何在JavaScript中动态拼接PHP的bas
- Win10怎么限制单程序CPU占用上限_Win10
- Win11怎么查看显卡温度 Win11任务管理器查
- Django密码修改后会话失效的解决方案
- php在Linux怎么部署_LNMP环境搭建PHP
- 如何在Golang中理解指针比较_Golang地址
- Win11 C盘满了怎么清理 Win11磁盘清理和
- Windows10如何更改桌面图标间距_Win10
- Windows10无法连接到Internet_Wi
- 如何在Golang中处理模块包路径变化_Golan
- Win11如何设置省电模式 Win11开启电池节电
- Python抽象类与接口设计_规范说明【指导】
- Win10怎样清理C盘浏览器缓存_Win10清理浏
- 如何使用Golang处理网络超时错误_Golang
- Win11应用商店下载慢怎么办 Win11更改DN
- php打包exe如何加密代码_防反编译保护方法【技
- Win10怎么查看内存时序参数_Win10CPU-
- Windows10如何查看保存的WiFi密码_Wi
- Win11怎么设置默认浏览器Chrome_Wind
- Win11怎么关闭键盘按键音_Win11禁用打字声
- Mac如何开启夜览模式_Mac护眼模式设置与定时
- c++如何利用doxygen生成开发文档_c++
- Windows怎样拦截QQ浏览器广告_Window
- Go语言中CookieJar的持久化机制解析:内存
- WindowsUSB驱动安装异常怎么办_USB驱动
- php控制舵机角度怎么调_php发送pwm信号控制
- c++输入输出流 c++ cin与cout格式化输
- Win11如何设置开机问候语 Win11修改登录界
- Python网络超时处理_健壮性设计说明【指导】
- Windows家庭版如何开启组策略(gpedit.
- Mac怎么开启“任何来源”_Mac安装未签名应用的
- php增删改查需要哪些扩展_开启mysqli或pd
- Win11如何连接Xbox手柄 Win11蓝牙连接
- Win11如何设置文件关联 Win11修改特定文件
- 如何在 Go 中调用动态链接库(.so)中的函数


QQ客服