开启调试模式是调试的基础,能显示详细错误信息、关闭模板缓存(修改即时生效)及记录SQL日志。
.env文件(本地开发环境)设置APP_DEBUG=true(高于config文件的优先级);若无.env文件,可在config/app.php中添加'app_debug' => true。dump($variable, true, '标签', true)函数输出变量内容到浏览器(true表示返回而非直接输出,标签用于标识,最后一个true表示显示类型);debug_start('label')和debug_end('label')记录代码段的运行时间及内存占用;trace('变量名', $variable)在页面Trace中输出变量信息,辅助追踪变量变化。安装Laravel Debugbar(兼容ThinkPHP),在页面底部显示调试工具栏,包含数据库查询、路由信息、配置参数等内容。
composer require barryvdh/laravel-debugbar --dev(仅开发环境使用);config/app.php的providers数组中添加Barryvdh\Debugbar\ServiceProvider::class,aliases数组中添加'Debugbar' => Barryvdh\Debugbar\Facade::class;php think vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"生成配置文件。Xdebug是PHP扩展,支持远程调试(与IDE配合)。
sudo apt install php-xdebug)或从源码编译;zend_extension=xdebug.so xdebug.remote_enable=1 xdebug.remote_host=127.0.0.1 # IDE所在服务器IP(远程调试时为本地IP) xdebug.remote_port=9003 # 默认9003,需与IDE一致 xdebug.remote_autostart=1 # 自动启动调试 Settings > PHP > Servers,添加服务器(名称任意,主机为Linux服务器IP,端口80/443),勾选“Use path mappings”并映射项目目录;然后创建调试配置(Run > Edit Configurations),选择“PHP Remote Debug”,选择对应服务器即可。config/logging.php中配置日志级别(如'level' => 'debug')和路径(如'path' => '/tmp/thinkphp.log'),程序运行中的错误、异常会记录到该文件;/var/log/nginx/error.log)或Apache(/var/log/apache2/error.log)的错误日志,定位HTTP请求层面的问题(如404、500错误)。php think run命令在命令行启动ThinkPHP项目,实时查看输出信息(适用于API或命令行脚本调试);composer install安装依赖时添加--verbose参数,查看详细安装过程,解决依赖冲突问题。.env中设置SQL_DEBUG_LOG=true,开启SQL日志记录,查看执行的SQL语句及执行时间(有助于分析慢查询或SQL语法错误);SHOW_PAGE_TRACE=true(或在config/app.php中配置),页面底部会显示Trace信息(包含请求参数、路由、数据库查询等)。以上方法可根据具体场景组合使用(如开发环境用Debugbar+Trace,远程调试用Xdebug+IDE),快速定位ThinkPHP项目中的问题。调试完成后,需关闭调试模式(APP_DEBUG=false)以避免性能损耗及敏感信息泄露。