php think config:cache 是 ThinkPHP 6/8 生产环境启用配置缓存的关键命令,需满足 app_debug=false、runtime 可写、配置语法正确三条件;执行后须重载 PHP-FPM 并验证 runtime/config.php 内容合法且含最新配置。

运行 php think config:cache 是 ThinkPHP 6/8 在生产环境启用配置缓存的关键步骤,它会把所有配置文件(config/*.php 和 .env)合并编译为单个高性能 PHP 文件 runtime/config.php,从而跳过重复解析开销。
执行前必须满足的条件
该命令不会无条件生效,需确保以下三点全部成立:
-
app_debug = false:在
config/app.php或.env中设置APP_DEBUG=false;若为true,框架直接读源文件,不生成也不使用缓存 -
runtime 目录可写:确保
runtime/及其子目录(尤其是runtime/config/)对 PHP 进程有写权限,否则生成失败且无明确报错 -
配置语法正确:任意
config/*.php文件中不能有 PHP 语法错误(如末尾多逗号、8.1 特性用在 8.0 环境),否则生成的runtime/config.php可能为空或非法
标准执行流程
在项目根目录下依次运行:
-
php think clear:config(可选但推荐):先清空旧缓存,避免残留干扰 -
php think config:cache:生成新的runtime/config.php -
php think optimize:config(验证用):不生成文件,仅模拟加载逻辑并输出合并结果,确认app_name等关键项是否已正确注入
生成后必须做的操作
仅生成文件还不够,缓存生效依赖两层机制:
立即学习“PHP免费学习笔记(深入)”;
-
重载 PHP-FPM 或重启 Web 服务:因为 OPcache 会缓存
runtime/config.php的字节码,不刷新则仍执行旧版本 -
检查
runtime/config.php内容:打开该文件,确认其是合法 PHP 数组(如以<?php return [...]开头),且包含你修改过的配置项值,而非空数组或报错信息
常见失败表现与对应检查点
如果执行后 config('app.app_name') 仍返回旧值,按顺序排查:
- 用
var_dump(config('app.debug'))确认当前是否真为false - 查看
runtime/config.php是否存在、非空、语法合法 - 运行
php -v和php --ri opcache,确认 CLI PHP 版本与 Web 环境一致,且 OPcache 已启用 - 检查
.env中是否有CACHE_STORE=redis类配置意外覆盖了配置加载链路



















