0

设置:

我正在使用来自 Amazon Web Services 的 Elastic Beanstalk 设置一个由 Wordpress 提供支持的应用程序。所有开发都在 MAMP apache2/php5 服务器环境下本地完成,GIT 存储库控制整个应用程序根。

部署工作流程:

在将任何代码更改(编辑、新插件等)提交到存储库后,应用程序将使用 AWS EB CLI 的eb deploy命令进行部署,该命令将最新版本推送到由 Elastic Beanstalk 管理的任何正在运行的 EC2 实例。

我的问题:

有时代码更改在我的开发/生产环境之间并不完全同步,我不知道如何克服它。尤其是在尝试安装和设置 W3 Total Cache 或 WP Super Cache 等插件时。

由于我的本地环境没有安装 memcahced 服务器之类的东西,但我的生产环境有 (ElastiCache) 我无法保存正确的设置文件并将其部署以在我的生产环境中使用。这些插件不允许我选择所需的服务,因为它认为它们不可用......

如果我将 W3 Total Cache 直接安装到实时生产环境中,我似乎只能让它工作,这似乎是个坏主意。

鉴于上述情况:

  • 我是否以错误的方式进行部署?

  • 是否应该在本地开发环境中安装和配置 W3 Total Cache 之类的插件并推送到生产环境?

4

2 回答 2

2

我无法评论 Elastic Beanstalk 特有的问题,但根据经验,我可以对您的问题陈述的第二部分提出建议:

您最好运行一个尽可能接近您的生产环境的开发环境。我建议你从 MAMP 转换到像 VirtualBox 这样的 VM 环境。您可能需要查看 puphpet.com 以获取有关设置的帮助。它需要一些启动工作,但会为您提供与生产服务器相似或相同的环境。例如,您可以自己运行 memcached,这样您就可以使用 W3 Total Cache 实际测试它。

至于你的第二个问题,只是在生产环境中安装一个插件而不事先测试它有明显的风险(但客户总是这样做)。我宁愿先测试。在某种程度上,它可能取决于站点是否出现停机或异常情况的严重程度。

于 2015-02-02T22:59:21.490 回答
1

我建议您在 Beanstalk 上创建另一个环境。在您的情况下,它比 VM 更简单、快速且更可靠,因为它还允许您测试部署过程。

我通常为每个网站提供 3 个环境。每个环境都在自己的分支上。如果环境之间的配置不同(例如 url 和数据库访问),只需将 wp-config 和其他配置文件存储到 S3 中(您可能不希望在 git 存储库中使用生产密码),然后通过 ebextensions 将它们下载到您的网站自动。

我在 16 个网站上使用 AWS Beanstalk,其中一些是 wordpress 网站。所有这些都具有自动缩放功能,并且能够同时获得数千名用户。

不要犹豫,向我询问更多详情。

于 2015-02-03T17:34:38.440 回答