在 Ubuntu 上调试 ThinkPHP(以 ThinkPHP 5 / 6 / 8 常见情况为例),通常可以从 日志、调试模式、Xdebug、命令行 几个方面入手。下面按“从简单到专业”的方式说明。
编辑项目根目录的 .env 文件(没有就新建):
APP_DEBUG=true
如果是 ThinkPHP 5 老版本,也可能在 application/config.php:
'app_debug' => true,
开启后:
日志位置:
runtime/log/
查看最新日志:
tail -f runtime/log/*/*.log
在代码中记录日志:
\think\facade\Log::error('调试信息');
\think\facade\Log::info('变量', $data);
dump($data);
或:
var_dump($data);
exit;
php think run
或执行命令:
php think your:command
sudo apt update
sudo apt install php-xdebug
查看是否安装成功:
php -m | grep xdebug
编辑 php.ini(路径可能不同):
php --ini
常见路径:
/etc/php/8.1/cli/php.ini
/etc/php/8.1/fpm/php.ini
添加:
[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
重启服务:
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx
安装插件:PHP Debug
.vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}
然后:
php think route:list
Db::getLastSql();
或开启 SQL 日志:
'debug' => true
try {
// code
} catch (\Exception $e) {
echo $e->getMessage();
}
✅ 新手
APP_DEBUG=truedump()runtime/log✅ 进阶
如果你告诉我:
我可以给你更精确的配置示例。