0

问题:

sf2 缓存是否与目录无关?即:我可以cache:clear在某个目录中进行操作,然后将项目目录移动到另一台机器/目录而不破坏缓存吗?

场景:

  • 我们有一个基于 Symfony2 的应用程序。
  • 生产机器有500MB。
  • 我们目前通过上传软件然后清除缓存来部署。
  • 在生产机器中,app/console cache:clear大约需要 5 分钟才能生成。
  • 在 2GB 的开发机器中,它只持续几秒钟。

我们要求最大限度地缩短生产时间。5分钟等待缓存太多了。

我们考虑cache:clear在本地机器上运行,然后使用已经生成的缓存将产品上传到生产环境。项目的本地路径(/home/ubuntu/devel/...)与生产路径(/var/www)不同,不能调整为相同。

4

1 回答 1

2

Symfony2 缓存在各个地方都使用绝对路径,因此如果路径不同,您无法将缓存从一台机器复制到另一台机器。

您真正需要的是通过 capifony 进行部署。部署后,它会在您的实时计算机上创建一个新文件夹,在该文件夹中准备项目的新版本(包括发布资产、清除缓存等),然后简单地将旧文件夹切换到新文件夹。

由于实时服务器上保留了一定数量的旧版本,因此您甚至可以在必要时进行回滚。

您可以使用 capifony 和 Jenkins CI 构建一个漂亮的一键式部署;)

于 2012-07-13T22:07:43.753 回答