5

当我们部署我们的应用程序时,我们只需创建一个新文件夹并指向它的符号链接,因此 apache 将始终找到最新版本。

但是,当我们在没有先重新启动 apache 服务器的情况下部署并继续测试时,我们会遇到奇怪的错误。我们也有 APC 正在运行,并且感觉缓存与此有关。

在 APC 处于活动状态时部署新版本的 php 应用程序时需要重新启动 apache 是否正常?还是有更好的方法,例如使用 shell 脚本清除 APC 缓存?

4

3 回答 3

8

您可以使用apc_clear_cache().

查看相关问题:

如何清除 APC 缓存条目?

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

于 2010-06-29T20:18:37.837 回答
6

取决于您在 php.ini 中是否有 apc.stat 设置。如果关闭(通常用于生产站点),则需要清除代码缓存或重新启动 apache;如果打开,那么它应该自动获取新代码

于 2010-06-29T20:22:17.580 回答
0

通常,APC 会“统计”每个 PHP 文件,以查看它自上次缓存以来是否已更改。因此,并非所有应用程序升级都需要重新启动 Apache。

但是,如果您的应用程序使用 apc_store() 将应用程序数据存储在缓存中,并且其中一些数据在升级后可能会更改,那么重新启动 Apache 是刷新整个 APC 缓存的简单方法。

我相信apache2ctl graceful也会奏效。

此外,如果您关闭“统计”检查,APC 的性能会更好一些;因此,如果您禁用该功能,那么无论如何您都需要重新启动 Apache。

于 2010-08-11T21:20:38.813 回答