开启PHP错误提示需修改php.ini(display_errors=On、error_reporting=E_ALL)、脚本顶部动态设置或.htaccess配置,并检查附加ini文件冲突,最后用undefined_function()测试验证。

如果您在本地开发PHP项目时无法看到错误信息,代码出错后仅显示空白页面或500错误,则可能是PHP错误报告功能被禁用。以下是开启PHP错误提示并显示详细错误信息的具体设置方法:
一、修改php.ini配置文件
该方法通过全局启用错误报告,适用于所有通过该PHP环境运行的脚本。需重启Web服务器使配置生效。
1、找到当前PHP使用的php.ini文件路径。可在PHP脚本中执行phpinfo()函数,查找“Loaded Configuration File”项对应的路径。
2、用文本编辑器打开php.ini文件,定位到display_errors指令行,将其值修改为On。
立即学习“PHP免费学习笔记(深入)”;
3、继续查找error_reporting指令行,将其值修改为E_ALL或E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED(推荐前者以捕获全部错误)。
4、确认log_errors设为On,确保错误同时记录到日志文件,便于排查静默失败。
5、保存文件,重启Apache或Nginx服务(如使用XAMPP/WAMP/MAMP,需重启对应控制面板中的服务)。
二、在PHP脚本顶部动态启用错误报告
该方法无需修改服务器配置,适用于单个脚本调试,且优先级高于php.ini设置,适合临时快速验证问题。
1、在PHP文件最开头(之后立即)插入以下三行代码:
2、必须确保这三行位于任何输出(包括空格、BOM头、HTML)之前,否则会触发“headers already sent”警告。
3、error_reporting(E_ALL);
4、ini_set('display_errors', '1');
5、ini_set('display_startup_errors', '1');
三、使用.htaccess文件启用(仅限Apache环境)
该方法适用于共享主机或无法直接修改php.ini的场景,在网站根目录或子目录下生效,无需重启服务。
1、确保Apache已启用mod_rewrite且AllowOverride配置允许FileInfo指令。
2、在目标目录创建或编辑.htaccess文件。
3、添加以下两行内容:
4、php_flag display_errors on
5、php_value error_reporting 32767
6、注意:32767是E_ALL在PHP 5.4+中的整数值;若使用PHP 8.0+,建议改用E_ALL字符串形式,但.htaccess不支持函数调用,故仍使用该数值。
四、检查Web服务器的PHP模块加载状态
某些本地环境(如Docker、Homebrew PHP)可能默认未启用php.ini中的错误显示,或加载了覆盖配置的额外ini文件。
1、执行php --ini命令,查看“Additional .ini files parsed”列出的所有文件路径。
2、逐一检查这些附加ini文件中是否包含display_errors = Off或error_reporting = 0等覆盖性设置。
3、对存在冲突的配置项,在对应文件中将其注释或修改为On和E_ALL。
4、特别注意:/etc/php/*/apache2/conf.d/ 或 /usr/local/etc/php/*/conf.d/ 下的20-*.ini等文件常被忽略,却具有高优先级。
五、验证错误提示是否生效
完成任一上述设置后,需通过实际触发错误来验证配置是否正确应用。
1、新建一个测试文件(如test.php),写入以下代码:
2、
3、在浏览器中访问该文件URL,应直接显示Fatal error: Uncaught Error: Call to undefined function undefined_function()等完整错误堆栈。
4、若仍无错误显示,检查浏览器开发者工具Network面板中响应状态码是否为500,并查看服务器错误日志(如Apache的error.log)获取原始报错。
5、关键验证点:错误信息中必须包含文件路径、行号及错误类型,而非仅“Internal Server Error”。











