php生产环境部署代码后访问的以前的代码

有一次上线,运维部署代码后测试,发现没有新加的功能,访问的还是更新前的功能。

上服务器,查看有更新后的代码,

为保留上个版本的代码,采用的是每个版本一个文件夹,软链最新的版本为线上版本,

进入最新文件夹发现,没有产生任何日志,就推测访问的是上个版本的代码,

进入上个版本发现有访问日志,日志文件一般一天产生一次,新的明天才会在新版本产生。

找了很久没有找到原因,后来运维屏蔽了服务器访问,重启php-fpm后可以访问到新的代码

原因是opcache缓存,虽然软连接指向的目录改变了,但是opcache识别到的目录是一样的,使用了直接缓存的文件,

所以访问的是旧版本。

可以修改php.ini里配置:

opcache.validate_timestamps=1
opcache.revalidate_freq=0

这样opcache就会每次都验证PHP文件的修改时间戳,如果PHP文件被修改过,opcache会重新缓存新的PHP文件opcode到内存.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值