1. 开启Laravel调试模式
在项目根目录的.env文件中,将APP_DEBUG设置为true,以启用详细错误显示(包括堆栈跟踪、请求参数等)。修改后需重启Laravel应用(如使用Sail则运行./vendor/bin/sail restart)。
2. 安装可视化调试工具(可选但推荐)
composer require barryvdh/laravel-debugbar --dev。composer require laravel/telescope --dev安装,访问/telescope路由查看详情。3. 配置Xdebug(适用于代码级调试)
Xdebug是PHP扩展,需完成以下步骤:
sudo apt install php-xdebug(根据PHP版本调整,如php8.2-xdebug)。php.ini(可通过php --ini查找路径),添加/修改以下参数:zend_extension=xdebug.so
xdebug.mode=debug,develop # 启用调试和开发功能
xdebug.start_with_request=yes # 自动启动调试会话
xdebug.client_host=host.docker.internal # Ubuntu宿主机地址(Docker环境);若为本地开发,设为127.0.0.1
xdebug.client_port=9003 # 与IDE监听端口一致(默认9003)
./vendor/bin/sail down && ./vendor/bin/sail up -d;若为本地环境,重启PHP-FPM(sudo service php8.2-fpm restart)和Web服务器(如Nginx:sudo systemctl restart nginx)。4. 集成IDE(以VSCode为例)
.vscode/launch.json文件,添加以下内容:{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"stopOnEntry": false,
"pathMappings": {
"/var/www/html": "${workspaceFolder}" // 映射Docker容器内的项目路径到本地
}
}
]
}
http://localhost:8080),VSCode会自动跳转到断点处。5. 使用交互式调试工具(Tinker)
Laravel Tinker是REPL工具,可用于命令行交互式调试。运行php artisan tinker,输入以下命令:
dd($request->all()):查看请求参数(中断执行);DB::table('users')->get():查询数据库并输出结果;Log::info('Debug message'):记录调试日志到storage/logs/laravel.log。6. 检查日志文件
Laravel日志默认存储在storage/logs/laravel.log中,可使用tail -f storage/logs/laravel.log实时查看日志,或通过Log::channel('stack')->error('Error message')手动记录错误信息。
7. 测试驱动调试(长期方案)
为关键逻辑编写单元测试(php artisan make:test UserTest)或功能测试(php artisan make:test LoginTest),通过php artisan test运行测试,自动捕获断言失败和异常,确保代码正确性。