You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel生产服务器修改数据库连接不生效的解决咨询

解决Laravel数据库配置不生效&新增路由未识别的缓存问题

我太懂这种生产环境里的缓存坑了!不用每次都重启服务器,用Laravel自带的Artisan命令就能快速搞定这两个问题:

一、让Laravel读取新的数据库连接配置

Laravel为了提升性能,会把所有配置文件合并缓存成一个单独的文件(存在bootstrap/cache/config.php)。如果之前你运行过config:cache命令,哪怕修改了config/database.php或者.env里的数据库参数,系统都会直接读缓存文件,完全不理你的新修改。

解决步骤很简单:

  • 先清除配置缓存,运行这条命令:

    php artisan config:clear
    

    执行后,Laravel会删掉缓存的配置文件,下次请求就会重新读取你的原始配置和.env变量,新的数据库连接配置就生效了。

  • 要是你想保持生产环境的性能优势,清除缓存后可以重新生成配置缓存:

    php artisan config:cache
    

    划重点:以后每次修改配置,都要先清缓存再重新生成,不然新修改还是会被忽略!

二、搞定新增路由未被识别的问题

和配置缓存一个道理,Laravel也会缓存路由来加快请求处理速度(缓存文件在bootstrap/cache/目录下,比如routes-v7.php)。新增路由后如果不更新缓存,系统根本找不到新路由。

解决方法:

  • 清除路由缓存:
    php artisan route:clear
    
  • 生产环境要优化性能的话,重新生成路由缓存:
    php artisan route:cache
    
    注意哦:路由缓存只支持控制器路由,要是你的新路由是闭包路由,就不能用route:cache,只能保持路由缓存清除的状态。

为啥重启服务器后会生效?

其实重启服务器的时候,Laravel的缓存文件会被进程重新加载,或者缓存目录的临时文件被清理了,相当于间接清了配置和路由缓存,所以修改就生效了。但手动用Artisan命令显然更高效,不用中断服务器服务~

内容的提问来源于stack exchange,提问作者Mohamed Zayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:38:26