php think clear 默认仅清 runtime/cache/、log/、session/、trace/ 四个目录,不包括 view/ 和 route.php,导致模板不更新或路由 404;加 --all 可清整个 runtime/,但会误删自定义文件;手动删 cache/ 仅影响 file 驱动,对 Redis 等无效。

ThinkPHP6项目中缓存未更新、模板不生效或路由404,常因清理不彻底导致——用命令行清和手动删 runtime/cache/ 看似结果一样,但实际影响范围、触发逻辑、残留风险完全不同。
命令行 php think clear 的真实清理范围
执行 php think clear 默认只删除四个目录:runtime/cache/、runtime/log/、runtime/session/、runtime/trace/。
它完全跳过 runtime/view/(模板编译文件)、runtime/route.php(路由缓存)、runtime/config/(配置缓存)——这些正是模板不更新、URL 404、数据库配置丢失的元凶。
加 --all 参数可清整个 runtime/ 目录,但会连带删掉 runtime/.gitignore 和你手动放进去的自定义配置文件,生产环境慎用。
立即学习“PHP免费学习笔记(深入)”;
手动删除 runtime/cache/ 的实际效果
直接进服务器删 runtime/cache/ 下所有文件,只影响 File 缓存驱动写入的 key-value 文件,对 Redis、Memcached 驱动零作用。
若项目已切到 Redis 缓存,这一步等于什么都没做;若用了 Cache::store('my_redis') 这类自定义实例,连 File 缓存都可能没清对路径——因为代码里指定的 path 和 config/cache.php 里的实际路径不一致时,runtime/cache/ 只是默认 fallback 路径。
这一步操作起来很简单,直接用 rm -rf runtime/cache/* 就行,但【删完仍报 Template not found 或路由 404 是大概率事件】。
真正“干净”的清理路径(按需组合)
第一步:清运行时文件缓存 → php think clear
第二步:单独清模板缓存 → php think clear -t(TP6.1+ 支持;TP6.0 需手动删 runtime/view/)
第三步:强制刷新路由缓存 → php think route:clear(TP6)或删 runtime/route.php(TP5 兼容写法)
第四步:清配置缓存(如存在)→ php think clear -c,否则 config/app.php 修改后不生效
第五步:若用 Redis,且确认前缀为 think_cache: → 进 redis-cli 执行 KEYS "think_cache:*" | xargs DEL,避免 FLUSHDB 误伤其他业务数据



















