2014-09-03 50 views
0

在以前/其他地方已经询问过这种问题,但我找不到答案。确切地说,基于revalidate_freq设置的PHP 5.5+ Opcache检查文件时间戳

我们在部署后的一分钟内有一些问题,我们认为它们与Opcache相关。在我们的现场设置中,我们有以下Opcache设置:

opcache.revalidate_freq=60 
opcache.validate_timestamps=1 

以下哪项做PHP?

  1. 当PHP需要一个文件,不是在这一点上检查,如果它已经60并以秒为它最后生成的文件的一个新的缓存,如果它已经被越来越然后生成此请求一个新的?

  2. 或者它运行在某种形式的计时器(或其他什么东西),其中60秒与何时上次需要该文件无关?

我期望的选项1,但将不能解释我们的60秒这样的问题,作为文件的文件路径,我们部署到交替或每个时间B目录是不同的。

我希望有道理吗?谢谢你的帮助。

回答

2

所以,从PHP manual

多久检查脚本时间戳更新,以秒计。 0将导致OPcache检查每个请求的更新。

所以发生了什么是您要更新的文件,但你的指令,说,这是最多的时候,你们之间更新文件和时间opcache60秒构建一个新的操作码。

validate_timestamps已经有答案了。因为你要手动重新验证文件,你可以做到这一点

当该指令被禁用,则必须通过opcache_reset(),opcache_invalidate()手动或通过重新启动更改Web服务器的文件系统采取复位OPcache影响。