Laravel怎么清除配置缓存 _ Laravel Config:clear命令使用方法【技巧】

1次阅读

config:clear 命令仅删除 bootstrap/cache/config.php 文件,不修改 .env、不重读配置、不影响已加载的运行时配置;修改 config/*.php 后必须执行该命令,否则 laravel 仍使用缓存旧值。

Laravel怎么清除配置缓存 _ Laravel Config:clear命令使用方法【技巧】

config:clear 命令到底清什么

它只删 bootstrap/cache/config.php 这个文件,不碰 .env、不重读配置项、也不影响运行时已加载的配置。换句话说:你改了 config/app.php 但没执行 config:clear,Laravel 仍会用缓存里的旧值——因为框架启动时优先加载这个 PHP 文件。

什么时候必须跑 config:clear

以下情况不执行就可能出问题:

  • 修改了任意 config/*.php 文件(比如加了个新 cache.stores.redis.connection
  • 部署后发现配置没生效,但 .env 明明写对了(其实是缓存没更新)
  • 本地开发切分支后,配置结构变了,但页面报错说某个键不存在(缓存里还存着旧数组结构)
  • CI/CD 流水线里,构建完要上线前没清缓存,导致生产环境加载错误配置

config:clear 和 config:cache 的关系

config:clearconfig:cache 的逆操作,但二者不对称:

  • config:cache 会把所有 config/*.php 合并成一个 bootstrap/cache/config.php,且强制要求 .env 已加载完毕(否则缓存里全是 env() 调用,没实际值)
  • config:clear 不校验环境,删完就完事;但如果删完立刻访问接口,Laravel 会重新生成缓存——此时若 .env 有误或缺失,新缓存也会错
  • 开发环境通常不用 config:cache,所以 config:clear 很少需要;但上线前清一次是保险做法

常见报错和绕过坑

执行 php artisan config:clear 报错?先看这些:

  • file_put_contents(bootstrap/cache/config.php): failed to open stream: No such file or Directory → 目录 bootstrap/cache/ 权限不对,不是 Laravel 报错,是 PHP 写不了文件
  • 清完还是旧配置 → 检查是否真删了 bootstrap/cache/config.php,有些部署脚本会跳过该步骤
  • 清完访问报 class 'AppProvidersAppServiceProvider' not found → 顺手也跑下 composer dump-autoloadconfig:clear 不处理自动加载
  • docker 容器里执行却没生效 → 确认命令是在正确容器内运行,且挂载卷没覆盖掉 bootstrap/cache/

缓存文件本身不加密不压缩,就是个 PHP 数组 return,但别手动编辑它——任何修改都会在下次 config:cache 时被覆盖。真正要改的永远是 config/*.php.env

text=ZqhQzanResources