互联网上有很多讨论,apc_cache_clear()
在 CLI 中调用不会从“web”PHP 进程中清除操作码缓存,无论它们是在 Apache 内部运行还是由 FPM 运行(请参阅如何清除 APC 缓存条目?)。作为建议的解决方案,可以创建一个调用 的简单 PHP 页面apc_cache_clear()
,然后从 CLI 调用它。Symfony 的 ApcBundle 就是这样做的。
如果apc_cache_clear()
来自 CLI 没有清空 Apache/FPM 的缓存,是否在 FPM 工作人员之间?如果我通过 HTTP 调用 /clear_apc_cache.php,它只能由 FPM 工作进程之一运行。那么,APC 操作码缓存是否真的在池和工作人员之间共享 - 更具体地说:它是否会自动从所有工作人员中清除?