插件/主题/核心更新时的opcache_Reset

时间:2016-04-09 作者:Simone Nigro

wordpress在插件/主题/核心更新后似乎没有重置opcache。

为了解决这个问题,我在php中设置了。ini公司

opcache.validate_timestamps=1
所有工作正常,但validate_timestamps 启用后,PHP将检查每个请求的文件时间戳,以降低性能。当它被禁用时,PHP文件永远不会检查更新的代码。wordpress更新代码时,新代码文件可能会与旧代码文件混合,结果未知。这太不安全了。

为什么wordpress不执行opcache_reset() 每次更新后?

或者。。。如果我能打电话opcache_reset 正在运行upgrader_process_complete, 例如:

if( extension_loaded(\'Zend OPcache\') ){
    add_action(\'upgrader_process_complete\', \'opcache_reset\', 1000, 0);
}
是否正确?

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

几条评论

为了以防万一,您可能应该在调用函数之前检查PHP版本是否为5.5及以上版本(或者检查其是否存在,不确定原始APC中是否存在同名的等效函数)

您的优先级太高。实际上,您希望在所有其他插件完成升级后的任何操作后调用它,以防它们所做的操作会影响任何PHP文件。争取优先权PHP_INT_MAX -1.

如果同时进行多个升级,您的代码实际上可能会被触发太多次,但除了性能受到轻微影响之外,我看不出有什么不好的地方。

相关推荐

如何针对多服务器环境进行缓存?Memcached、Redis或其他?

我正在研究加速多服务器wordpress安装的方法。在过去,有像batcache这样的插件使用memcache来存储对象。该插件已经过时,希望在2018年了解Wordpress在内存中存储对象的最佳方式。我的目标是加速我们的wordpress站点,并在缓存对象(限制DB交互)时卸载服务器,如果可能的话,不使用页面缓存(内存解决方案)。