在开始调试前,需确保Ubuntu系统已安装必要的组件:
php-mysql、php-mbstring、php-xml、php-curl)。可通过sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl命令安装。curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer命令安装。fastcgi_pass指向PHP-FPM socket,如unix:/run/php/php8.2-fpm.sock),或Apache(启用mod_rewrite模块)。composer create-project topthink/think tp),并配置.env文件中的数据库连接等信息。调试模式是ThinkPHP调试的基础,开启后系统会显示详细错误信息、关闭模板缓存、记录SQL日志等。
.env文件(优先级高于config文件),设置APP_DEBUG=true。public/index.php)中定义常量define('APP_DEBUG', true)。⚠️ 正式环境需将
APP_DEBUG设为false,避免敏感信息泄露。
ThinkPHP提供了一系列内置工具,方便快速调试:
dump($variable, true, '标签', true)函数输出变量内容(true表示返回而非直接输出,标签用于标识,true表示显示类型)。debug_start('label')和debug_end('label')记录代码段的运行时间及内存占用,结果可在页面Trace中查看。config/log.php中的log_level(如1=错误日志)和log_file(如runtime/log/tp.log),系统会将错误、异常等信息记录到指定文件,便于后续分析。Xdebug是PHP扩展,支持断点调试、堆栈跟踪等功能,需与IDE(如PhpStorm、Visual Studio Code)配合使用:
sudo apt install php-xdebug安装(Ubuntu 22.04+),或手动编译安装(需指定--enable-xdebug选项)。php.ini文件(如/etc/php/8.2/cli/php.ini),添加以下配置:zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
Debug模式启动项目,即可实现断点调试。日志是调试的重要依据,ThinkPHP及Web服务器的日志可提供详细的错误信息:
runtime/log目录下(如runtime/log/202509/tp.log),记录了应用运行中的错误、异常、SQL语句等信息。/var/log/nginx/error.log,记录Nginx处理请求时的错误(如502 Bad Gateway、404 Not Found)。/var/log/apache2/error.log,记录Apache的错误信息。tail -f /var/log/nginx/error.log命令实时查看日志。ThinkPHP提供了php artisan命令行工具,可用于交互式调试:
php artisan tinker进入交互式PHP shell,可动态调用应用中的类和方法(如User::find(1)查询用户信息),方便测试代码片段。php artisan migrate执行数据库迁移,php artisan migrate:rollback回滚迁移,解决数据库结构问题。php artisan queue:work启动队列监听,php artisan queue:failed-table查看失败任务。www-data)对项目目录有读取权限,可通过sudo chown -R www-data:www-data /path/to/project和sudo chmod -R 755 /path/to/project命令设置。try_files $uri $uri/ /index.php?$query_string;,确保路由正常解析。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)。