首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用apc_compile_file手动填充整个应用程序的操作码缓存,然后切换到新版本

使用apc_compile_file手动填充整个应用程序的操作码缓存,然后切换到新版本
EN

Stack Overflow用户
提问于 2010-05-14 14:35:07
回答 2查看 456关注 0票数 0

有没有人有一个伟大的系统,或任何想法,做的标题说?

我想将web应用的生产版本--用PHP编写并由Apache提供--从1234版切换到1235版,但在此之前,所有文件都已进入操作码缓存(APC)。然后,在切换之后,从第1234版中删除文件的旧缓存条目。

据我所知,从一个版本到下一个版本有三种简单的原子切换方式。

next.

  • Similarly,

  • 有一个符号链接,例如,/live,它总是文档根目录,但被更改为从一个版本指向一个目录/live,这个目录/live总是文档根目录,但是使用

mv老版本& mv新版本直播

若要切换到新版本。

  • 编辑apache配置以将文档根更改为新版本,然后重新启动apache.

我认为最好不要做3,但无论如何我想不出预编译所有php文件并使用1或2来切换发行版。

那么,有人能不能说服我依赖选项3,或者告诉我如何使用1或2,或者透露一些我没有想到的其他选项?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-14 16:21:08

你到底为什么要这么做?

当我切换到新版本时,我只需停止我的Apache,通过从我的VCS签出来替换服务器上的PHP文件,然后重新启动Apache。它通常需要不到30秒才能完成,甚至是脚本化的。所有这些都是在用户很少或没有用户的时候执行的。在此之后,操作码缓存是空的,一旦有人使用这些文件,就会自己填充。

也许最初的几次命中不会有最佳的表现,但这不应该是那么糟糕。在我的生产系统中,没有人注意到这种短暂的性能下降。其中有一些非常重的负荷系统。

您甚至可以在您的服务器上放置一个简单的“升级.尽快回来”屏幕,同时替换这些文件,以避免向用户发出任何令人不安的错误消息。

票数 1
EN

Stack Overflow用户

发布于 2010-05-14 16:12:32

然后在开关之后,从第1234版中删除文件的旧缓存条目。

您只能清除整个缓存,或者根本不能清除。这不是一个选择性的过程。这可能会改变你处理这个问题的方法。如果预编译是最重要的,那么在切换期间,您可能被迫关闭服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2834942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档