Wordpress本地开发和部署的麻烦

时间:2015-02-02 20:52:23

标签: wordpress amazon-web-services deployment elastic-beanstalk w3-total-cache

设置:

我正在使用Amazon Web Services中的Elastic Beanstalk设置一个Wordpress驱动的应用程序。所有开发都在MAMP apache2 / php5服务器环境下进行,并且GIT存储库控制整个应用程序根目录。

部署工作流程

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

我的问题:

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

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

如果我直接将它安装到实时生产环境中,我似乎只能使W3 Total Cache工作,这看起来不错。

鉴于上述情况:

  • 我的部署方式是错误的吗?

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

2 个答案:

答案 0 :(得分:2)

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

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

至于你的第二个问题,只是在生产环境中安装一个插件而不预先测试它有明显的风险(但是客户一直这样做)。我宁愿先测试一下。在某种程度上,它可能取决于网站遇到停机或怪异的严重程度。

答案 1 :(得分:1)

我建议你在Beanstalk上创建另一个环境。 它比您的VM更容易,更快速,更可靠,因为它还允许您测试部署过程。

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

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

请不要犹豫,向我询问进一步的细节。