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

Laravel 9清理缓存后控制器与视图仍存缓存问题求助

解决方案排查步骤
  • 检查并清除PHP OPcache
    生产环境默认开启OPcache,它会把编译后的PHP字节码存在内存中,哪怕删除源文件,内存里的缓存依然会被执行。

    • 临时关闭OPcache:找到php.ini或php-fpm.conf,将opcache.enable=1改为0,保存后重启PHP-FPM。
    • 强制刷新OPcache:执行php -r 'opcache_reset();'(确保PHP CLI配置和Web服务的PHP配置一致,也可通过Web页面调用该函数)。
    • 临时实时检查文件变化:在php.ini中设置opcache.validate_timestamps=1和opcache.revalidate_freq=0(生产环境不建议长期启用,仅用于排查)。
  • 重启PHP-FPM或Web服务器
    PHP-FPM进程可能持有旧缓存内容,必须重启服务才能彻底释放:

    • 重启PHP-FPM:sudo systemctl restart php-fpm(不同系统命令可能不同,如service php7.4-fpm restart)
    • 重启Web服务器:sudo systemctl restart nginx 或 sudo systemctl restart apache2
  • 确认代码部署路径是否正确
    检查Web服务器配置,确认根目录指向你修改/删除文件的路径:

    • Nginx:查看配置中的root项,如root /var/www/html/your-project/public;
    • Apache:查看DocumentRoot配置,如DocumentRoot "/var/www/html/your-project/public"
      可在服务器创建临时文件test.php,内容为<?php echo getcwd(); ?>,访问该文件确认当前工作目录是否正确。
  • 检查队列Worker状态(若使用队列)
    若控制器逻辑涉及队列任务,旧的队列Worker可能仍运行旧代码,需重启Worker:

    • 停止队列:php artisan queue:stop
    • 重启队列:php artisan queue:restart 或 nohup php artisan queue:work &(根据队列驱动调整)
  • 执行更彻底的Laravel缓存清理
    运行以下命令一次性清除所有Laravel缓存:

    php artisan optimize:clear
    
  • 排查CDN缓存
    若使用CDN服务(如Cloudflare、阿里云CDN等),CDN节点可能缓存了旧页面,需登录CDN后台手动清除缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:26:04