ThinkPHP6在宝塔需分层清缓存:先执行php think clear --all(加-t更新模板),再重置OPcache(/www/server/php/82/bin/php -r "opcache_reset();"),按需清理Nginx FastCGI缓存或Redis中think_cache:*键。

ThinkPHP6在宝塔面板里快速清缓存,必须区分清楚是清框架运行缓存、PHP OPcache、Nginx代理缓存还是Redis等外部缓存——混用命令或路径错误会导致页面404、白屏或用户会话丢失。
用命令行精准清TP6框架缓存
进入网站根目录(如/www/wwwroot/your-domain.com),确认当前使用的是TP6且已正确加载Composer自动加载器。
执行php think clear --all:该命令会清空runtime/cache/、runtime/log/、runtime/temp/、runtime/route/四个目录,但【不清理runtime/view/模板缓存】。
若页面模板未更新,追加-t参数:php think clear --all -t。注意:此操作会强制重建所有编译模板,首次访问略慢。
立即学习“PHP免费学习笔记(深入)”;
如果只清缓存不碰路由和配置,避免误触发404,改用php think clear:cache(TP6.1+支持),它仅清理runtime/cache/和runtime/data/,保留route/和config/。
清PHP OPcache(必须做)
TP6代码更新后页面仍显示旧逻辑,大概率是OPcache没刷新——框架缓存清了,PHP字节码还在内存里跑。
先查当前PHP版本路径:在宝塔「软件商店」→ 找到已安装的PHP → 点击「设置」→ 复制「PHP版本路径」,例如/www/server/php/82/bin/php。
执行:/www/server/php/82/bin/php -r "opcache_reset();"。这行命令直接重置OPcache内存池,比重启PHP-FPM快且不影响其他站点。
【切勿用rm -rf删/www/server/php/82/var/opcache/】——该目录是OPcache运行时映射的共享内存标识区,删了也不起作用,还可能引发PHP-FPM子进程异常退出。
清Nginx FastCGI缓存(按需)
如果你的Nginx配置中启用了fastcgi_cache(常见于高并发静态化场景),TP6返回内容可能被Nginx缓存住,框架和PHP层都清干净了,用户看到的仍是旧页。
方法一(推荐):进宝塔「网站」→ 选站点 → 「设置」→ 「Nginx」→ 「缓存规则」→ 点「全清Nginx缓存」。此操作安全、即时,适用于默认缓存路径。
方法二(手动):SSH登录后,先确认缓存路径:grep -A2 "fastcgi_cache_path" /www/server/nginx/conf/nginx.conf,找到类似/www/server/nginx/fastcgi_cache的路径。
执行rm -rf /www/server/nginx/fastcgi_cache/*。注意:不要漏掉*,只删目录本身会报错;删完立即执行nginx -s reload让Nginx重建缓存索引。
清Redis缓存(仅当TP6配置了redis驱动)
第一步:确认TP6是否启用Redis缓存。打开config/cache.php,检查'default' => 'redis'及'stores' => ['redis' => [...]]是否启用。
第二步:确认Redis数据库编号和前缀。默认配置下,TP6缓存键名形如think_cache:xxx,存在db 0中。
执行:/www/server/redis/src/redis-cli -n 0 --raw KEYS "think_cache:*" | xargs -r /www/server/redis/src/redis-cli -n 0 DEL。这行命令只删带think_cache:前缀的key,不会误清session或队列数据。
如果项目用了多个缓存前缀(如think_session:、think_route:),把"think_cache:*"替换成对应前缀即可。



















