如何在不崩溃Apache的情况下清除APC缓存?

3
如果APC存储了大量的条目,则清除它们会导致httpd崩溃。
如果apc_clear_cache('user')的清除时间超过php的max_execution_time,调用apc_clear_cache的脚本将在清除操作完成之前被php终止。这似乎会留下一些句柄或其他东西,这将阻止Apache关闭其进程。

(http://pecl.php.net/bugs/bug.php?id=13445)

有没有其他快速但安全的批量清理APC缓存的方法?
2个回答

5
您可以取消正在运行的脚本的时间限制(只要您不在安全模式下运行php)。
set_time_limit(0);

这将取消脚本的时间限制。

点击此处了解更多详情。


我刚刚注意到这是您发布的链接中建议解决问题的方法 :) - Thomas Winsnes

5
您可以优雅地重启Apache,它将重新加载一个干净的APC。

1
在生产环境中,当一个应用程序的新部署版本完成后,优雅地重启Apache是否是一种有效的方法? - Jorre
如果您不介意停机一秒钟,那么这是可以接受的。 - MrPHP
3
优雅地重启 Apache 不会导致任何停机时间,甚至没有一秒钟的停顿。 - scy
1
所以有三个人同意我的看法,但没有一个点赞我的回答... 嗯 :( - Collector

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接