【问题标题】:Two server setup for online store(Magento)在线商店的两台服务器设置(Magento)
【发布时间】:2009-10-29 14:32:49
【问题描述】:

我正在使用 Magento 开发在线商店。该站点的流量很大,需要两个服务器设置,测试和生产。

我的问题是在线商店,特别是 Magento 是如何处理这个问题的?

我的想法是:

  • 使生产站点离线
  • 空测试数据库
  • 从生产数据库复制数据。 (也许)
  • 测试
  • 将文件和数据库复制到生产站点

我知道 Magento 提供企业选项,但这是我想自己编写的脚本。

【问题讨论】:

    标签: php mysql magento deployment copy


    【解决方案1】:

    您不需要使生产站点离线。

    我建议(您应该能够编写脚本)在生产站点上运行mysqldump -u root -ppassword db_name > db_name.sql 以生成数据库的副本。然后在文件目录上运行 rsync(你可以在 linux 和 windows 上获取它)以 rsync 到测试机器任何你想要复制的文件(图像?)

    在您对您希望推送到生产环境的测试进行任何测试后,您可以通过以下两种方式之一进行。或者(我更喜欢这种方法)将您对数据库所做的任何更改保存在 sql 文件中并在生产站点上运行,同时同步回任何更改的文件。或者您可以使用 mysql 将所有查询记录到一个文件中,然后在生产站点上重新播放这些查询。

    如果不需要,最好不要关闭生产站点。

    【讨论】:

      【解决方案2】:

      您希望主/从 mySQL 与从从数据库读取但写入实时。这可以在 local.xml 文件中设置。您应该能够对文件运行 rsync,对 var/session 和 var/cache 文件使用 --exclude。此外,如果它是开发服务器,您可能希望 --exclude 徽标。然后可以将徽标更改为“测试”,这样您就不会将其与 Live 混淆。

      【讨论】:

        【解决方案3】:

        实际上,如果您对数据库进行更改,则需要在从旧代码切换到新代码时使站点离线(即使只是几秒钟),然后运行数据库迁移脚本。

        你可能有兴趣知道

        • postgres 具有事务性 DDL:如果您将迁移脚本包装在事务中并且中间出现中断,则整个事情都会回滚(包括 DROP TABLE)

        • postgres 不需要重写表来添加列(MySQL 会这样做,而且速度很慢)

        • 如果您使用 MyISAM,您注定要失败的原因有很多,其中之一是进行备份会使您的网站离线几分钟。

        【讨论】:

        • Magento 需要 MySQL 和 InnoDB,所以 postgres 不是一个选项
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多