当我们部署我们的应用程序时,我们只需创建一个新文件夹并指向它的符号链接,因此 apache 将始终找到最新版本。
但是,当我们在没有先重新启动 apache 服务器的情况下部署并继续测试时,我们会遇到奇怪的错误。我们也有 APC 正在运行,并且感觉缓存与此有关。
在 APC 处于活动状态时部署新版本的 php 应用程序时需要重新启动 apache 是否正常?还是有更好的方法,例如使用 shell 脚本清除 APC 缓存?
当我们部署我们的应用程序时,我们只需创建一个新文件夹并指向它的符号链接,因此 apache 将始终找到最新版本。
但是,当我们在没有先重新启动 apache 服务器的情况下部署并继续测试时,我们会遇到奇怪的错误。我们也有 APC 正在运行,并且感觉缓存与此有关。
在 APC 处于活动状态时部署新版本的 php 应用程序时需要重新启动 apache 是否正常?还是有更好的方法,例如使用 shell 脚本清除 APC 缓存?
取决于您在 php.ini 中是否有 apc.stat 设置。如果关闭(通常用于生产站点),则需要清除代码缓存或重新启动 apache;如果打开,那么它应该自动获取新代码
通常,APC 会“统计”每个 PHP 文件,以查看它自上次缓存以来是否已更改。因此,并非所有应用程序升级都需要重新启动 Apache。
但是,如果您的应用程序使用 apc_store() 将应用程序数据存储在缓存中,并且其中一些数据在升级后可能会更改,那么重新启动 Apache 是刷新整个 APC 缓存的简单方法。
我相信apache2ctl graceful
也会奏效。
此外,如果您关闭“统计”检查,APC 的性能会更好一些;因此,如果您禁用该功能,那么无论如何您都需要重新启动 Apache。