在ThinkPHP项目的**入口文件(如public/index.php)或配置文件(如config/app.php)**中,将APP_DEBUG设置为true,开启调试模式。开启后,页面会显示详细的错误信息(包括堆栈跟踪),同时关闭模板缓存、字段缓存等功能,方便开发者快速定位问题。
dump()函数dump()函数比原生var_dump()更友好,可输出变量的类型、值及结构,支持添加标签和是否显示到页面。例如:dump($user, true, '用户信息', true); // 输出$user变量,带标签和页面显示
debug_start()与debug_end()debug_start('query_time'); // 开始记录
// 执行数据库查询等操作
debug_end('query_time'); // 结束记录,输出耗时及内存
SHOW_PAGE_TRACE为true,页面底部会显示调试工具栏,包含SQL语句、执行时间、请求参数、路由信息等内容,直观展示请求处理的全流程。ThinkPHP的日志系统支持将错误信息记录到文件或数据库,便于后续分析。
config/logging.php中设置日志驱动为file,指定日志级别(如error、warning、info)及存储路径(默认为runtime/log目录)。示例如下:'default' => 'file',
'channels' => [
'file' => [
'type' => 'file',
'path' => runtime_path('log'), // 日志存储路径
'level' => ['error', 'warning'], // 记录的日志级别
],
],
error:记录致命错误(如数据库连接失败);warning:记录警告信息(如未定义变量);info:记录常规信息(如请求开始/结束)。CentOS系统的权限设置直接影响ThinkPHP的运行,需确保:
755权限,文件644权限(避免使用777,存在安全风险);apache或nginx)。示例如下:sudo chmod -R 755 /path/to/thinkphp_project
sudo chown -R apache:apache /path/to/thinkphp_project
runtime目录(用于存储缓存、日志、上传文件等)需赋予写入权限,否则会导致缓存无法生成、日志无法记录等问题。runtime/log目录下的最新日志文件(如runtime/log/202510/23.log),其中包含详细的错误信息(如SQL语法错误、未定义函数);/var/log/httpd/error_log;/var/log/nginx/error.log。Xdebug是PHP的扩展工具,支持断点调试、堆栈跟踪、变量监视等功能,需与IDE(如PhpStorm、Visual Studio Code)配合使用。
sudo pecl install xdebug
php.ini:在php.ini中添加以下配置(根据PHP版本调整路径):zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9003
xdebug.remote_autostart=1
9003)。通过php think run启动项目,在IDE中设置断点,即可实现单步执行、变量查看等调试操作。php think命令:ThinkPHP提供了php think run命令,可在命令行中启动项目,实时查看输出信息(如路由匹配、控制器执行结果),方便调试命令行脚本或API接口;barryvdh/laravel-debugbar,虽为Laravel设计,但可适配ThinkPHP),增强调试功能。示例如下:composer require barryvdh/laravel-debugbar --dev
安装后,需在config/app.php中注册服务提供者,并发布配置文件,Debugbar会显示在页面底部。