2015-12-14 59 views
6

我已经在新的主机(虚拟云)上设置了我的网站,但是我正在查看opcache,并且没有将用于a minutes or soscripts从缓存中删除。Opcache清除速度太快

那么有没有办法阻止它?或者这是一种正常的行为?

非常感谢。

+0

是什么在你的php.ini的opcache设置? – Clay

+0

是什么“,‘opcache.max_accelerated_files’的价值呢?如果你设置‘opcache.validate_timestamps = 0’? – Clay

+0

opcache.max_accelerated_files = 2000 –

回答

0

听起来像你需要在php.ini中定义validate_timestamps=0。注意这一点虽然 - 如果您上传任何更改到您的PHP文件,您将需要重新启动Apache(如果您使用mod_php5)或PHP5-FPM,或手动清除opcache。

有关如何清除opcache手动你基本上要创建一个PHP文件,opcache_reset()并运行它的细节,但是这必须是在同一个SAPI作为你的其他文件 - 即由PHP5-FPM运行,如果是什么是为您的其他文件提供服务。 http://ihaveabackup.net/2013/10/19/invalidating-the-opcache-in-php-5-5/

2

实际上有这样的配置。 opcache.revalidate_freq=2,默认值是2秒,opcache会尝试每2秒检查一次时间戳,如果文件改变了,它会重新生效。 您可以更改值以符合您的需求,或者您可以使用此配置文件opcache.validate_timestamps=0关闭时间戳检查,但在这种情况下,您每次将代码部署到生产时都必须重新启动php-fpm(如果您使用的是php-fpm )和Web服务器

opcache.revalidate_freq=2或任何整数值

opcache.validate_timestamps=1opcache.validate_timestamps=0

+0

By使用'opcache.validate_timestamps'到'0',选项'opcache.revalidate_freq'将被忽略。 –