在phpenv管理的本地PHP开发环境中,调试代码时如果看不到具体的报错信息,会大大增加问题排查的难度。开启PHP错误提示只需要调整对应PHP版本的配置文件即可,操作并不复杂。

找到phpenv对应PHP版本的php.ini文件
phpenv支持同时管理多个PHP版本,不同版本的配置文件是独立的,首先需要确定当前项目使用的PHP版本,再找到对应的php.ini文件。可以通过phpenv命令行查看当前生效的PHP版本:
# 查看当前phpenv使用的PHP版本 phpenv version # 查看所有已安装的PHP版本 phpenv versions
找到对应版本的php.ini文件,默认路径通常在phpenv安装目录下的versions/版本号/etc/目录中,比如使用PHP7.4.3版本,路径可能是~/.phpenv/versions/7.4.3/etc/php.ini,如果目录下只有php.ini-development或php.ini-production,可以复制一份重命名为php.ini使用。
修改php.ini开启错误提示
打开php.ini文件,找到以下几个核心配置项,按照需求修改即可:
- error_reporting:设置错误报告的级别,决定哪些类型的错误会被捕获
- display_errors:设置是否将错误信息在页面上输出
- display_startup_errors:设置是否显示PHP启动时的错误信息
- log_errors:设置是否将错误记录到日志文件
具体配置修改示例
将以下配置项修改为对应的值,即可开启所有错误提示:
; 错误报告级别,E_ALL表示显示所有错误和警告 error_reporting = E_ALL ; 开启页面显示错误 display_errors = On ; 开启启动错误显示 display_startup_errors = On ; 建议同时开启错误日志记录,方便后续排查 log_errors = On ; 错误日志保存路径,根据实际路径调整 error_log = /tmp/php_errors.log
如果需要更精细的控制错误级别,可以调整error_reporting的值,比如只显示致命错误和警告,可以使用error_reporting = E_ERROR | E_WARNING,常见的错误级别说明如下:
| 错误级别常量 | 说明 |
|---|---|
| E_ALL | 显示所有错误和警告信息 |
| E_ERROR | 显示致命的运行时错误 |
| E_WARNING | 显示运行时警告信息 |
| E_NOTICE | 显示运行时通知信息,比如变量未定义 |
| E_PARSE | 显示编译时的语法解析错误 |
使配置生效
修改完php.ini文件后,需要重启phpenv对应的PHP服务让配置生效,如果是使用phpenv自带的php-fpm,执行以下命令:
# 重启php-fpm,版本号替换为实际使用的版本 ~/.phpenv/versions/7.4.3/sbin/php-fpm restart
如果是通过命令行运行PHP脚本,修改配置后直接重新执行脚本即可生效,不需要重启服务。
验证错误提示是否开启
可以创建一个包含错误代码的PHP文件,访问或执行该文件验证配置是否生效:
<?php // 故意触发一个未定义变量的通知错误 echo $undefined_var; // 触发一个语法错误,注意这个错误会在解析阶段抛出 // echo "test" ?>
如果配置正确,页面或命令行会直接显示对应的错误信息,包括错误类型、文件路径、行号等具体内容,方便快速定位问题。
注意事项
生产环境一定要关闭display_errors配置,避免将敏感信息暴露给用户,生产环境只需要开启log_errors,将错误记录到日志文件中即可。
如果修改配置后错误提示还是不生效,可以检查是否有代码中使用ini_set()函数覆盖了php.ini的配置,或者检查php.ini文件是否修改了正确的版本,避免改错配置文件。
phpenvPHP错误提示本地调试php_ini配置error_reporting修改时间:2026-07-11 17:48:24