Opcache – 在PHP5.4及更低版本中清理缓存

有没有办法使用 PHP5.4或更低版本的Opcache清理/重置缓存文件
Here是opcache_reset()函数,它似乎与PHP5.5一起使用

解决方法是重新启动…

编辑:我在Github上开了一个issue

zend_accelerator_module.c声明了两个记录的API调用:opcache_reset()和opcache_invalidate()以及两个未记录的API调用:opcache_get_status()和opcache_get_configuration().从源头上看,他们所做的事情非常明显.

当您发出opcache_reset()时,它显然只适用于连接到执行PHP脚本的进程的OPcache缓存.是的,你可以在系统上安装许多这样的缓存.

当你在PHP-cli请求上opcache.enable_cli = 1时,OPcache会为连接到该进程的缓存发出重启请求;不幸的是,cli SAPI创建了一个私有缓存,所以这并没有太大的好处.

在* nix系统上理解的要点是OPcache依赖于某些底层进程管理器(如Apache或FPM)来启动OPcache,从而使其mmap()包含缓存的SMA.然后,进程管理器分叉处理请求的子进程,并偶然从父进程继承mmapped区域.

因此,如果要重置连接到PHP-FPM的OPcache缓存,则必须通过在PHP-FPM服务下运行的脚本运行此操作.这只需要一个4线.如果要从命令行执行此操作,则可以使用wget,curl或使用curl扩展的PHP CLI脚本来启动此FPM脚本.

但请记住在两者之间使用一些强大的身份验证机制来防止第三方利用.

如果你想了解更多,我已经完成了这个概述:The Zend Engine and opcode caching.如果你有任何反馈或Qs,那么在这里发表评论或在Github提出一个问题.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...