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

PHP代码突然被缓存的原因及位置排查求助

PHP 8.1.9 异常缓存问题排查思路
  • 检查PHP OPcache配置

    • 打开php.ini,确认opcache.validate_timestamps是否设为1(开启自动校验文件更新),opcache.revalidate_freq是否设置合理间隔(比如2秒,而非过大的值)
    • 执行命令php -i | grep -A 20 "opcache"查看当前OPcache状态,重点看Cached scripts列表和Last restart time,确认目标脚本是否被缓存
    • 临时将opcache.enable设为0,重启Web服务后测试,若问题消失则说明OPcache是根源
  • 排查服务器端代理/系统缓存

    • 检查是否存在反向代理(如Nginx、Varnish)或本地CDN工具,这类服务可能会缓存响应内容,即使后端文件已修改
    • Linux环境下执行sync; echo 3 > /proc/sys/vm/drop_caches清空系统页缓存,再测试页面内容是否更新
    • 确认Web服务的缓存配置,比如Apache的mod_cache模块是否意外开启,查看httpd.conf中相关配置项
  • 验证脚本执行路径

    • 在脚本中添加echo __FILE__; exit;,输出当前执行文件的绝对路径,确认是否在修改正确的文件(避免因include_path或软链接导致加载了其他目录的旧文件)
    • 检查PHP的include_path配置,执行php -i | grep include_path,看是否有优先级更高的目录存在同名脚本
  • 排查进程驻留问题

    • Apache mod_php模式下,重启Apache服务,确认是否有旧进程残留导致内存中保留旧脚本内容
    • Symfony内置服务器需完全关闭(杀掉所有相关进程)后重新启动,避免残留进程继续提供旧内容
    • 查看PHP的max_execution_time和memory_limit参数,确认是否存在进程异常挂起的情况
  • 检查文件系统一致性

    • 用stat 你的脚本文件路径查看文件修改时间,确认修改操作是否立即同步了mtime(PHP依赖该时间判断是否重新加载脚本)
    • 若使用网络文件系统(NFS)或磁盘缓存策略,测试将脚本复制到本地磁盘后运行,看是否仍有缓存问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:50:31