ThinkPHP 清配置缓存需按版本区别处理:TP5.0 无独立配置缓存,需清 runtime/temp/ 和 runtime/cache/ 并调用 Config::reset();TP5.1 清 runtime/cache/config_*.php 或执行 php think clear --cache 并确保 APP_DEBUG=true;TP8 删 runtime/config.php 或用 php think config:clear,开发时设 'debug'=>true 可绕过缓存;还需注意 OPcache 干扰。

ThinkPHP 的 php think clear 命令本身**不直接清除“配置缓存”**,因为配置缓存的行为在不同版本中差异很大——TP5.0 没有独立配置缓存文件,TP5.1 会生成 config_*.php,TP8 则生成 runtime/config.php。所以“清配置缓存”不能只靠 clear,得看版本、找对位置、配合操作。
TP5.0:没有 config 缓存文件,但要清干扰源
TP5.0 不生成单独的配置缓存(如 runtime/config/ 或 config_*.php),所谓“配置不更新”,通常是模板编译或运行时合并逻辑固化导致的。
- 删
runtime/temp/:它存了路由、模板、语言包等编译结果,修改config.php中影响模板/路由的项(如'template'=>['cache'=>false])后必须清这里 - 删
runtime/cache/:部分扩展或Config::set()动态写入的配置可能落在此处,尤其用了Cache::set('config_xxx', ...)时 - 代码中调
\think\Config::reset():强制重载所有原始配置文件,绕过已合并的内存副本
TP5.1:清 config_*.php 文件 + 确保调试模式
TP5.1 在 runtime/cache/ 下生成以 config_ 开头的 PHP 文件(如 config_app.php),这是真正的配置缓存。
- 执行
php think clear --cache:该命令会清空整个runtime/cache/目录,包括所有config_*.php - 手动删更精准:进入
runtime/cache/,rm config_*.php(Linux/macOS)或删掉所有.php文件(Windows 可用资源管理器筛选) - 务必确认
APP_DEBUG = true:在public/index.php中设为true,框架才会跳过读取缓存文件,直读config/下源文件
TP8:清 runtime/config.php + 重建或关调试
TP8 把全部配置合并后写入单个 runtime/config.php(仅在 app_debug = false 时生成)。
立即学习“PHP免费学习笔记(深入)”;
- 删文件:
rm -f runtime/config.php—— 这是最直接有效的一步 - 重建缓存:
php think config:cache(生成新文件)或php think config:clear(清空并重置内部状态) - 开发阶段快捷法:把
config/app.php中'debug' => false改成true,框架每次请求都重新加载源配置,无需清任何文件
别忘了 OPcache 干扰
即使删了所有 ThinkPHP 缓存文件,如果服务器启用了 PHP OPcache,它仍可能缓存旧的 config/*.php 字节码。
- 改完配置后,执行
php think clear:config(TP8)或重启 PHP-FPM(如sudo systemctl restart php-fpm) - 检查
opcache.revalidate_freq,建议设为0或2,避免 OPcache 忽略文件变更 - 临时验证:在控制器里输出
config('app.debug'),若返回false却仍不生效,大概率是 OPcache 锁定



















