是否有使用PHP5.4或更低版本的Opcache来清理/重置缓存文件?
这里是opcache_reset()函数,它似乎与PHP5.5一起工作
解决办法是重新启动..。
编辑:我在Github上打开了一个问题
发布于 2013-07-19 18:23:10
module.c声明了两个有文档的API调用:opcache_reset()和opcache_invalidate(),以及两个无文档的调用:opcache_get_status()和opcache_get_configuration()。从源头上看,他们所做的是相当明显的。
当您发出opcache_reset()时,它显然只应用于OPcache缓存,该缓存连接到正在执行PHP的进程。是的,您可以在系统中有许多这样的缓存。
当您在opcache.enable_cli=1上处理php- cli 请求时,OPcache将为连接到该进程的缓存发出重新启动请求;不幸的是,cli创建了一个私有缓存,因此这并没有多大用处。
在*nix系统上需要理解的主要一点是,OPcache依赖于一些底层的进程管理器,比如Apache或FPM来启动OPcache,从而导致它对包含缓存的SMA进行mmap()。然后,流程管理器对子进程进行分叉,该子进程为请求提供服务,并顺便从父进程继承from区域。
因此,如果要重置连接到PHP的OPcache缓存,则必须通过运行PHP服务下的脚本来执行此操作。这只需要四线线。如果您想从命令行执行此操作,则可以使用wget、curl或使用curl扩展来启动此FPM脚本的PHP脚本。
但请记住,在两者之间使用一些强大的身份验证机制,以防止第三方的利用。
如果您想了解更多,我已经做了以下概述:Zend引擎和操作码缓存。如果您有任何反馈或Qs,那么在这里评论或提出一个问题在Github。
发布于 2013-07-18 11:50:08
查看您的环境中的存在是否可以使用该方法。
if( function_exists('opcache_reset') ) echo 'yay!';当它在php 5.5中可用时,因为它附带了opcache,如果您已经将OpCache安装到了一个旧版本的php中,那么它也会变得可用。我相信,当文档中写着PHP时,这就是它所注意到的。
我还成功地在PHP5.4中使用了这个快速和脏的控制面板 (使用opcache_*方法)。
编辑在查看了上面的链接控制面板之后,我注意到它检查了PHP,以及是否存在opcache_reset。
它似乎尝试了*而不是opcache_*函数。
我建议尝试一下这个脚本,看看它是否适用于您,然后我们可以向后工作,看看您的服务器上安装了什么,以及使用了什么方法。
发布于 2015-05-03 23:27:14
如果服务器上有WordPress站点,只需安装插件OPcache仪表板即可。它为您提供交互式控制,并在自动Wordpress升级进程运行后触发缓存重置。
关于运行同一CMS的多个实例的服务器,需要注意的另一件事是,如果服务器运行不同版本的CMS或插件,会发生什么情况。这将发生,例如,如果您错开升级的主要版本。在这种情况下,您的PHP.ini需要包括
opcache.use_cwd=1因此,根据所在目录的不同,将分别编译相同的文件名。如果您确信所有站点的CMS版本是相同的,则可以将其设置为0并获得效率提高,因为OpCache将编译每个例程一次,然后为服务器上的所有CMS实例提供服务。这也是一个内存效率提高,如果您有大量的实例在您的WP场将是相当重要的。
https://stackoverflow.com/questions/17716639
复制相似问题