命令行执行新代码正常,浏览器请求却仍报旧方法不存在。清 Magento cache、重新部署静态文件都无效,因为问题不在前端资源。
readlink -f /var/www/shop/current
ps -ef | grep php-fpm
php -i | grep -E 'opcache.validate_timestamps|realpath_cache_ttl'使用 current -> releases/20260113 这类软链接发布时,PHP-FPM worker 可能继续持有旧 release 的真实路径或 OPcache 字节码。CLI 每次启动新进程,所以看起来已经更新。
正确动作是按部署方案平滑重载对应 FPM pool,让新 worker 接管;不要粗暴杀光进程造成正在结账的请求中断。若 OPcache 关闭时间戳校验,发布流程必须显式 reset 或 reload。
验证时在不泄露绝对路径的诊断端点记录 release 版本号,连续请求多次,确保负载均衡后的每个节点都返回同一版本。随后移除临时端点。

