thinkphp6开启调试模式核心是确保app_debug环境变量在php运行前设为true或"true"/"1";须在.env中写app_debug=true(无空格无引号),web需nginx/apache透传,cli/swoole需重启进程,生效后显示trace面板、异常堆栈和debug日志。

ThinkPHP6 开启调试模式,核心就一条:确保 APP_DEBUG 环境变量在 PHP 运行前被正确设为 true(布尔值)或字符串 "true" / "1"。它不看配置文件里的开关,也不靠命令行参数,只认这个环境变量。
.env 文件方式(最常用)
在项目根目录(与 public、app 同级)创建或编辑 .env 文件,写入:
-
APP_DEBUG=true(注意:不能加空格、不能加引号、不能写成on或yes) - 如果想同时启用 Trace 调试面板,再加一行:
APP_TRACE=true(新版 TP6 中,APP_DEBUG=true已默认激活 Trace,但显式声明更稳妥) - 确认该文件没有被重命名为
.env.local或其它名字——TP6 只自动加载根目录下的.env
Web 服务器需显式传递
仅写 .env 不够,Apache/Nginx 必须把环境变量透传给 PHP:
-
Apache:确保
mod_env已启用,并在虚拟主机或目录配置中加入:SetEnv APP_DEBUG true或PassEnv APP_DEBUG -
Nginx:在
fastcgi_param块中添加:fastcgi_param APP_DEBUG $APP_DEBUG;(同时需在 Nginx 配置顶层定义env APP_DEBUG;或通过系统级环境设置)
CLI / Swoole 场景注意事项
命令行运行(如 php think run)或 Swoole 服务启动时:
- 确保
.env在启动前已被加载——TP6 默认会在App::init()早期自动加载,无需手动调用 - 不要在中间件、控制器里用
putenv()或$_ENV['APP_DEBUG'] = true动态修改,此时框架已初始化,无效 - 改完
.env后,必须重启 CLI 进程或 Swoole 服务(Swoole 尤其不能热更) - 若使用 OPCache,请确认
opcache.revalidate_freq=0,或执行opcache_reset(),否则旧值可能缓存
验证是否生效
开启成功后你会看到:
- 页面右下角出现 ThinkPHP 的小 logo 图标,点击可展开 Trace 面板
- 发生异常时显示完整堆栈和上下文信息(而不是白屏或 500)
- 日志写入
runtime/log/,级别为 debug,SQL 语句含绑定参数 - 模板、路由、配置等缓存全部失效,每次请求都重新解析
线上环境严禁开启,哪怕临时调试也应关掉 APP_DEBUG 再测。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











