WordPress

使用暂存:推送到生产环境和从生产环境拉取

Once a staging copy exists, two operations keep it useful: pushing your tested changes up to the live site, and resetting staging back to a fresh copy of production. This guide covers both…

一旦存在暂存副本,两项操作可以保持其实用性:将测试过的更改推送到实时网站,以及将暂存重置为生产环境的新副本。本指南详细介绍了两个方向、保护实时网站的确认,以及推送数据库会销毁数据的情况。

如果您还没有创建暂存环境,请从使用暂存环境开始。本文从暂存环境已存在的位置继续。

两个方向

操作它覆盖的内容何时使用
推送到生产环境您的实时网站暂存环境中的更改已测试且可以上线
从生产环境重置您的暂存网站您想要当前实时网站的干净副本来进行操作

两者都位于同一屏幕上:网站,然后是您的网站,然后是环境,然后是暂存

KPanel 中网站上的暂存选项卡

该屏幕顶部的卡片显示您的暂存域、其状态、上次从生产环境同步的时间以及上次推送的时间。WP Admin 直接将您登录到暂存网站的仪表板,访问网站 打开暂存前端。

一周或更长时间未同步的暂存副本在该卡上以琥珀色标记。过期的暂存环境比没有暂存更糟:您最终会针对一个不再与实时网站相似的网站进行测试。开始新工作之前重置,而不是之后。

将暂存推送到生产环境

这将用暂存环境中的内容替换您实时网站的全部或部分内容。

  1. 打开环境,然后打开暂存
  2. 向下滚动到将暂存推送到生产环境
  3. 使用复选框选择要推送的内容:文件数据库或两者。
  4. 如果您选中了数据库,请保持重写 URL 为选中状态。它在每个表中运行搜索和替换,以便将暂存主机名交换为您的生产环境主机名,作为推送的一部分。
  5. 勾选我理解这会修改我的实时生产网站
  6. 将您的生产域名完全按照显示的方式输入到确认框中。
  7. 点击推送到生产环境

直到复选框被勾选且域名匹配,按钮才会启用,因此不会有失误的点击开始推送。

推送会覆盖,不会合并。自您上次重置以来在生产环境上所做的任何更改都将被暂存环境中的内容替换。这包括新帖子、新客户帐户、新表单条目和新订单。

在写入任何内容之前,生产环境的完整备份会自动进行,如果推送在中途失败,生产环境将回滚到该备份。小型网站通常在一分钟内完成;大型数据库或几个 GB 的媒体库需要更长时间。

选择文件、数据库或两者

这是最重要的决定,答案通常不是"两者"。

仅文件。 对于从访问者收集任何内容的网站,这是安全的默认选项。主题编辑、插件更新、模板更改和自定义代码都位于文件中。仅推送文件会让生产环境中的每篇文章、评论、订单和用户保持不变。

仅数据库。 对于在暂存环境上进行的内容或设置更改,在没有人直接编辑生产环境的网站上。在实践中很少见。

两者。 适用于重新设计或重建,其中暂存环境是新网站,生产环境被整体替换。宣布它,在非工作时间进行,并首先确认您有最新备份。

将数据库推送到实时商店会删除订单。WooCommerce 在数据库中保留订单、客户、订阅、优惠券和库存水平,因此自您上次从生产环境重置以来下达的每个订单在推送完成的那一刻就会消失。没有部分恢复。在商店上,仅推送文件,并直接在生产环境上进行数据库级别的更改。请参阅设置 WooCommerce

同样的陷阱也适用,虽然程度较轻,适用于任何具有评论、表单提交、会员注册或存储在 WordPress 中的邮件列表的网站。

从生产环境重置暂存

这是安全的方向:它用当前实时网站覆盖暂存,从不触及生产环境。

  1. 打开环境,然后打开暂存
  2. 找到从生产环境重置
  3. 勾选文件数据库或两者。
  4. 点击从生产环境重置

在以下情况下执行此操作:

  • 生产环境已向前推进,有新帖子、新订单或内容编辑。
  • 您开始新的工作,需要一个逼真的基础。
  • 暂存环境已漂移到足以使测试结果无意义的程度。

暂存环境中未推送的任何内容都会丢失。如果暂存环境上有您仍想要的工作,请首先推送它,或通过文件文件管理器在重置前将更改的文件复制出来。

URL 重写的工作原理

WordPress 在数据库中存储自己的地址,在 options 表的 siteurlhome 行中,绝对 URL 也会出现在文章内容、元值、小工具设置和主题选项中。

您的暂存网站在 staging. 后跟您的域名运行,因此这些值中的每一个在您在那里工作时都指向暂存主机名。推送时的重写 URL 在所有表中运行适当的搜索和替换,正确处理序列化的插件设置,并将暂存主机名交换为您的生产环境主机名。

保持它为选中状态,除非您有特定的原因不这样做。如果您仅推送文件,或者有错误的暂存 URL 仍然存在,请使用运行搜索和替换来修复它。

一个能坚持下来的工作流程

  1. 从生产环境重置,使暂存环境与实时网站匹配。
  2. 进行生产环境备份后再开始,这样您就有一个独立于推送的恢复点:进行备份
  3. 在暂存环境上进行工作。 插件和主题更新、新代码、布局更改。
  4. 在暂存域名上测试。 加载您更改的页面和您没有更改的页面。在商店上,端到端运行测试订单。
  5. 仅推送文件,除非您已刻意决定数据库也必须推送。
  6. 立即检查生产环境。 首页、深层页面、结账和管理仪表板。
  7. 一旦您满意,再次从生产环境重置暂存,以便下一轮从干净状态开始。

暂存完全从您的生产网站进行管理。它不会在网站列表中显示为单独的条目,因此针对它的所有控件,包括删除它,都位于此选项卡上。

删除暂存

同一屏幕底部的删除暂存卡会删除暂存副本。生产环境不受影响。项目完成后删除它:暂存计入您计划的存储空间,过期的副本是负债而非资产。

故障排除

推送到生产环境按钮不会激活。 必须满足两个条件:确认复选框被选中,生产域名输入完全无误,不带 https:// 且无尾部斜杠。

推送完成但网站仍显示旧内容。 缓存问题。从WordPress 进行刷新,然后快速操作,然后刷新缓存,从性能中清除 CDN,然后Kapsule CDN,并在隐私窗口中重新加载。

推送后暂存 URL 显示在实时网站上。 数据库已传输但未勾选重写 URL。从暂存主机名运行搜索和替换到您的生产域名:运行搜索和替换

我推送了数据库并丢失了订单。 立即恢复自动推送前备份,在更多订单到达被覆盖的数据库之前:从备份恢复

暂存在重置后显示错误。 硬编码生产域名的插件是常见原因。使用暂存卡上的 WP Admin 登录并在那里停用插件,直到错误清除,然后在生产环境上修复或替换有问题的插件。

仍需帮助?

请发送邮件至 support@kapsulehost.com 或在 KPanel 中打开聊天。

打开 KPanel
Push Staging to Production | Kapsule Help