在ThinkPHP项目的**入口文件(如public/index.php)**中定义APP_DEBUG为true,或在.env文件(优先级更高)中设置APP_DEBUG=true。开启后,页面会显示详细错误信息(如语法错误、未定义变量),并关闭模板缓存、字段缓存等功能,方便调试。
dump()函数输出变量内容(比原生var_dump()更友好,支持格式化)。例如:dump($user, true, '用户信息', true)(最后一个参数true表示在页面底部显示)。debug_start('label')和debug_end('label')记录代码段的运行时间及内存占用,帮助定位性能瓶颈。SHOW_PAGE_TRACE=true(配置文件中),页面底部会显示调试工具栏,包含SQL语句、执行时间、请求参数等信息。ThinkPHP的日志系统支持文件、数据库等多种驱动,默认将日志存储在**项目根目录/runtime/log/**下。可通过以下方式配置:
config/logging.php,设置日志级别(如debug记录详细信息,error仅记录错误)和路径。例如:'default' => 'file',
'channels' => [
'file' => [
'type' => 'file',
'path' => runtime_path() . 'log/',
'level' => ['debug', 'error'], // 记录debug及以上级别日志
],
],
Log类手动记录日志。例如:use think\Log;
try {
// 业务代码
} catch (\Exception $e) {
Log::record('异常信息:' . $e->getMessage(), 'error'); // 记录错误日志
}
Xdebug是PHP扩展,支持断点调试、堆栈跟踪等功能,需与IDE(如PhpStorm、Visual Studio Code)配合使用:
pecl安装:sudo pecl install xdebug,然后在php.ini中添加配置:zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1 # IDE所在IP
xdebug.client_port=9003 # 默认端口,需与IDE一致
Servers(指定项目路径和服务器IP),并开启Debug模式;在Visual Studio Code中安装PHP Debug扩展,配置launch.json文件。ThinkPHP Debugbar是一个可视化调试工具栏,显示在页面底部,包含数据库查询、路由信息、配置信息等。安装及使用步骤:
composer require barryvdh/laravel-debugbar --dev(ThinkPHP兼容)。config/app.php的providers数组中添加:Barryvdh\Debugbar\ServiceProvider::class;aliases数组中添加:'Debugbar' => Barryvdh\Debugbar\Facade::class。php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider",开启调试模式后即可在页面看到Debugbar。runtime/log/下的日志文件(如runtime.log),包含应用运行时的错误、异常信息。tail -f /var/log/nginx/error.logtail -f /var/log/httpd/error_logruntime目录需可写),避免403 Forbidden错误。命令:sudo chmod -R 755 /path/to/project,sudo chown -R apache:apache /path/to/project(Apache用户)。Controller/User.php不能写成controller/user.php)。config/database.php中的数据库配置(主机、端口、用户名、密码),确保数据库服务已启动(systemctl status mysqld),并可通过命令行工具(如mysql -u root -p)连接。通过以上方法,可快速定位和解决ThinkPHP在CentOS下的调试问题,提升开发效率。调试完成后,需关闭调试模式(APP_DEBUG=false),避免敏感信息泄露。