Wordpress 本地开发和部署的问题
Trouble with Wordpress local development and deployments
设置:
我正在使用 Amazon Web Services 的 Elastic Beanstalk 设置一个由 Wordpress 驱动的应用程序。所有开发都在 MAMP apache2/php5 服务器环境下本地完成,其中 GIT 存储库控制整个应用程序根目录。
部署工作流程:
在将任何代码更改(编辑、新插件等)提交到 repo 后,使用 AWS EB CLI 的 eb deploy
命令部署应用程序,该命令将最新版本推送到任何 运行 EC2 实例由 Elastic Beanstalk 管理。
我的问题:
有时代码更改在我的 development/production 环境之间并不完全同步,我不确定如何克服它。特别是在尝试安装和设置 W3 Total Cache 或 WP Super Cache 等插件时。
由于我的本地环境没有安装诸如 memcahced 服务器之类的东西,但我的生产环境有 (ElastiCache),所以我无法保存正确的设置文件并将其部署以用于我的生产环境。这些插件不允许我 select 所需的服务,因为它认为它们不可用...
似乎只有将 W3 Total Cache 直接安装到实时生产环境中才能让 W3 Total Cache 正常工作,这似乎是个坏主意。
鉴于以上:
我是不是以错误的方式进行部署?
W3 Total Cache之类的插件是否应该安装和配置
本地开发环境并推送到生产环境?
我无法评论特定于 Elastic Beanstalk 的问题,但根据经验,我可以对您的问题陈述的第二部分提出建议:
您最好 运行 建立一个尽可能接近您的生产环境的开发环境。我建议您从 MAMP 转换为虚拟机环境,例如 VirtualBox。您可能需要查看 puphpet.com 以获得设置方面的帮助。它需要一些启动工作,但会为您提供与生产服务器相似或相同的环境。例如,您可以 运行 自己进行 memcached,这样您就可以实际使用 W3 Total Cache 对其进行测试。
关于你的第二个问题,在生产环境中安装一个插件而不事先测试它有明显的风险(但客户总是这样做)。我宁愿先测试。在某种程度上,这可能取决于站点是否出现停机或异常情况的严重程度。
我建议您在 Beanstalk 上创建另一个环境。
在您的案例中,它比 VM 简单、快速且更可靠,因为它还允许您测试部署过程。
我通常为每个网站准备 3 个环境。每个环境都在自己的分支上。如果您的配置在环境之间不同(例如 url 和数据库访问),只需将您的 wp-config 和其他配置文件存储到 S3 中(您可能不希望在您的 git 存储库中使用生产密码),并且通过 ebextensions,您可以将它们自动下载到您的网站。
我以这种方式为 16 个网站使用 AWS Beanstalk,其中一些是 wordpress 网站。所有都具有自动缩放功能,并且能够同时获得数千个用户。
请随时向我询问更多详情。
设置:
我正在使用 Amazon Web Services 的 Elastic Beanstalk 设置一个由 Wordpress 驱动的应用程序。所有开发都在 MAMP apache2/php5 服务器环境下本地完成,其中 GIT 存储库控制整个应用程序根目录。
部署工作流程:
在将任何代码更改(编辑、新插件等)提交到 repo 后,使用 AWS EB CLI 的 eb deploy
命令部署应用程序,该命令将最新版本推送到任何 运行 EC2 实例由 Elastic Beanstalk 管理。
我的问题:
有时代码更改在我的 development/production 环境之间并不完全同步,我不确定如何克服它。特别是在尝试安装和设置 W3 Total Cache 或 WP Super Cache 等插件时。
由于我的本地环境没有安装诸如 memcahced 服务器之类的东西,但我的生产环境有 (ElastiCache),所以我无法保存正确的设置文件并将其部署以用于我的生产环境。这些插件不允许我 select 所需的服务,因为它认为它们不可用...
似乎只有将 W3 Total Cache 直接安装到实时生产环境中才能让 W3 Total Cache 正常工作,这似乎是个坏主意。
鉴于以上:
我是不是以错误的方式进行部署?
W3 Total Cache之类的插件是否应该安装和配置 本地开发环境并推送到生产环境?
我无法评论特定于 Elastic Beanstalk 的问题,但根据经验,我可以对您的问题陈述的第二部分提出建议:
您最好 运行 建立一个尽可能接近您的生产环境的开发环境。我建议您从 MAMP 转换为虚拟机环境,例如 VirtualBox。您可能需要查看 puphpet.com 以获得设置方面的帮助。它需要一些启动工作,但会为您提供与生产服务器相似或相同的环境。例如,您可以 运行 自己进行 memcached,这样您就可以实际使用 W3 Total Cache 对其进行测试。
关于你的第二个问题,在生产环境中安装一个插件而不事先测试它有明显的风险(但客户总是这样做)。我宁愿先测试。在某种程度上,这可能取决于站点是否出现停机或异常情况的严重程度。
我建议您在 Beanstalk 上创建另一个环境。 在您的案例中,它比 VM 简单、快速且更可靠,因为它还允许您测试部署过程。
我通常为每个网站准备 3 个环境。每个环境都在自己的分支上。如果您的配置在环境之间不同(例如 url 和数据库访问),只需将您的 wp-config 和其他配置文件存储到 S3 中(您可能不希望在您的 git 存储库中使用生产密码),并且通过 ebextensions,您可以将它们自动下载到您的网站。
我以这种方式为 16 个网站使用 AWS Beanstalk,其中一些是 wordpress 网站。所有都具有自动缩放功能,并且能够同时获得数千个用户。
请随时向我询问更多详情。