很多老板让网站一直跑着旧插件、旧主题和旧版式,原因只有一个:怕一动就坏。这种担心很合理:插件更新可能改变表单的行为,仓促改版可能让结账页在一个月里最忙的那天无法使用。测试站(staging)就是常见的解决办法,它是您网站的一份私有副本,先在这里试,犯了错也不花您一分钱。本文讲清楚什么时候需要它、怎么建立、要复制什么和关掉什么、怎样不让它出现在搜索结果里、一套测试流程,以及如何回退。内容是通用的,不绑定任何工具,因为具体步骤取决于您的主机和网站软件。
测试站是什么,又不是什么
测试站是您网站的一份可以正常运行的副本,放在与正式网站不同的地址,不对公众开放。它有同样的页面、主题、插件和设置,所以您可以在上面更新、改版,甚至弄坏,看看会发生什么。改动成功,就在线上网站上重复一遍;不成功,就修好副本或直接丢掉,访客不会察觉。
- 它不是备份。备份是出问题之后用来恢复的存档;测试站是让您在出问题之前就发现问题。两者都需要,网站备份指南讲的是备份这一半。
- 它不是第二个线上网站。不要把客户引到这里,它也不应该接收真实订单或发送真实消息。
- 它不是自动的保护。一份几个月前的旧副本,可能通过了线上网站其实通不过的测试。
什么时候需要测试站,什么时候可以直接改线上
不是每个改动都要先演练。为改一个错别字专门建测试站是白费力气,而直接在线上改结账页则是自找麻烦。判断标准是:这个改动可能影响网站的多大范围,以及撤销有多难。
| 改动 | 对线上网站的风险 | 在哪里做 |
|---|---|---|
| 改错别字、改营业时间、换一张照片 | 低:只涉及一页,容易撤销 | 通常直接改线上即可,先做好最近的备份 |
| 更新一个小插件 | 中:可能与主题或其他插件冲突 | 如果网站有订单或询盘,用测试站;简单的展示型网站可在备份后直接改 |
| 安装一个从没用过的插件 | 中到高:您的网站上多了一段新代码 | 先在测试站 |
| 更新主题、页面构建器或核心软件 | 中到高:全站版式都可能变化 | 测试站 |
| 更改PHP版本 | 高:旧代码可能无法运行 | 先在测试站,再安排一次线上变更 |
| 改结账、付款、预约或表单逻辑 | 高:涉及金钱和询盘 | 测试站,并做完整测试 |
| 页面改版或更换主题 | 高:直接在线上做,访客会看到没做完的网站 | 测试站,做好再上线 |
| 把网站迁到新主机 | 高:很多东西同时变化 | 切换前先测试副本,参见如何不停机迁移网站 |
三个问题就能解决大多数情况。这个改动会不会影响不止一个页面?会不会影响金钱、询盘或登录?如果它出了问题,我会不会马上知道?前两个答案是“会”,或者第三个是“不会”,就用测试站。拿不准时,就当它比看上去更有风险。
如果实在无法建测试站,还有一条较弱的折中办法:在安静的时段做有风险的改动,改之前立刻做一份新备份,一次只改一样,并把恢复步骤事先写下来。这总比在星期五下午一次把所有东西全更新要好。
建立测试站的常见方式
没有唯一的标准做法。下面是老板和开发者最常用的几种,从最省事到最手动。您能用哪几种,取决于主机、套餐和网站所用的软件。
| 方式 | 做法 | 注意 |
|---|---|---|
| 主机自带的测试站工具 | 在控制面板里一步操作,把网站复制到一个私有地址,有的还能把改动推回线上 | 不是每家主机、每个套餐都有;先查它复制什么,会不会关闭邮件 |
| 测试站插件或网站管理工具 | 网站上的软件把副本做进一个文件夹或第二个数据库 | 大型网站可能超时;副本仍然需要密码 |
| 子域名,例如 staging.您的域名 | 把文件和数据库复制到您自己域名下的新地址,并修改其设置 | 需要单独的数据库,并要改网站地址 |
| 有密码保护的文件夹 | 副本放在同一账户的文件夹里,前面加一道密码 | 容易忘记它的存在;路径和网站地址都要改 |
先问最简单的问题:查一下您的主机在您的套餐上有没有测试站功能,以及它到底复制什么。要读它的说明,不要想当然。没有的话,问问建站的人有没有自己的测试副本,很多开发者都有。如果都没有,子域名或加密码的文件夹是常规的替代办法,cPanel主机指南介绍了会用到的控制面板区域。如果网站还没建,请在项目一开始就谈好测试区,参见先买主机还是先建好网站。

复制什么:文件、数据库,以及线上数据的陷阱
网站通常由两部分组成:文件(主题、插件、图片、代码)和数据库(页面、产品、设置、用户、订单和表单记录)。有用的测试站两者都要有:只有文件没有数据库,会显示空白或损坏的网站;数据库配旧文件,行为又可能与真实网站不同。
陷阱就在数据库。它存的不只是页面。视您的网站而定,它还存着客户账户、订单、询盘、订阅名单,以及邮件和付款的设置。把它复制到测试站,这些都跟着过去,而这份副本可能会开始按这些数据行动。
| 带过去的内容 | 测试站上可能出什么问题 | 怎么做 |
|---|---|---|
| 客户和订单记录 | 个人资料现在多放在第二个保护较弱的地方 | 给测试站加密码,限制谁能打开,用完就删 |
| 邮件设置和邮件插件 | 副本可能向真实客户发出真实邮件,例如订单确认或提醒 | 测试前先关闭发信,或改发到测试邮箱 |
| 付款设置 | 测试订单可能打到真实的支付网关 | 在测试站使用支付网关的测试模式,或停用付款 |
| 定时任务(续费、提醒、同步) | 它们可能在两份副本上都运行,客户收到重复消息 | 在测试站暂停定时任务 |
| “不让搜索引擎收录”或 noindex 设置 | 如果之后被复制回线上,线上网站可能从搜索中消失 | 每次复制后检查线上网站的这项设置 |
最稳妥的习惯,是把建好副本后的头十分钟当作安全工作,在点任何东西之前先做:设密码、关邮件、关付款、暂停定时任务,然后再看。有些主机和工具会自动做其中一部分,有些一样都不做,所以不要想当然。
让测试站保持私密:先设密码,再加 noindex
测试站不应该出现在搜索结果里。如果出现了,访客可能进入一份没做完的副本,您的真实页面还要与自己的复制品竞争。两种措施要配合使用。
- 先设密码。Google的指引是:要让网页不出现在Google里,就用 noindex 阻止收录,或用密码保护该页面。密码是更强的措施,因为爬虫和陌生人打不开的东西就读不到。很多控制面板和测试站工具都有给文件夹或网站设密码的选项,请查一下您的。
- 再加 noindex 作为第二层。noindex 规则可以写在页面的 meta 标签里,也可以放在 HTTP 响应头里,告诉搜索引擎不要收录这个页面。它只有在爬虫能够加载并读到页面时才有效。
- 不要只靠 robots.txt。Google把 robots.txt 描述为管理抓取的方式,而不是让页面不出现在搜索结果里的办法。如果 robots.txt 挡住了某个页面,爬虫就看不到该页面上的 noindex 规则,所以只要别的页面链接到它,这个地址仍可能出现。Google也不支持把 noindex 写在 robots.txt 里。
- 检查复制回去的内容。“屏蔽一切”的规则或“不让搜索引擎收录”的设置,可能从测试站带到线上,让您的真实网站从搜索中消失。
如果测试站的地址已经被收录,先加上密码,保留 noindex 规则,然后等搜索引擎重新访问。Google Search Console 有针对紧急情况的移除工具,但长久的解决办法仍是密码或 noindex。不要把测试站地址发在公开的地方,也不要发给客户。
安全的改动流程,一步一步来
不管用哪种方式,顺序比工具更重要。不懂技术的老板可以请开发者照此执行,或者在协助下自己照做。
- 写下这次改动。一句话:“更新页面构建器和联系表单插件。”计划含糊,测试也会含糊。
- 备份线上网站。文件和数据库都要,下载到不依赖线上网站的地方。确认备份真的完成了,也知道它放在哪。主机可能自己也留有备份,但您在改动前亲手做的那份,才对应那一刻的状态。
- 建立或刷新测试站。旧副本已经过时,就用线上网站的新副本替换。
- 让测试站变安全。密码、noindex、关闭邮件、关闭付款或用测试模式、暂停定时任务。
- 在测试站做改动,一次只改一样。如果一次更新了三个插件而网站坏了,您不会知道是哪一个造成的。
- 跑一遍下面的测试清单,把看上去有点怪的地方都记下来。
- 在线上重复这个改动,或者推送上去。按同样的步骤、同样的顺序再做一遍,或者在有推送功能时使用它(见下一节的提醒)。
- 用同一份清单测试线上网站,选在安静的时段,并保留备份,直到确认一切正常。
老板最常跳过第一次备份,开发者最常跳过在线上的复测。这两个跳过,正是“测试过”的改动仍然弄坏真实网站的原因。
测试清单
要测的是让您的网站带来收入或询盘的部分,而不只是首页能不能打开。请用无痕窗口和真实的手机,不要只用一个很窄的桌面窗口。
| 方面 | 检查什么 | 失败时的样子 |
|---|---|---|
| 页面和菜单 | 首页、服务页、联系页、每个菜单链接和页脚 | 页面缺失、版式错乱、链接失效 |
| 表单 | 提交每个询盘表单;检查确认信息,以及消息是否到达正确的邮箱 | 显示“已发送”却什么都没收到、进了垃圾邮件、报错 |
| 结账和付款 | 加入购物车、使用优惠券、在测试模式下完成结账 | 购物车是空的、金额不对、付款步骤失败 |
| 手机 | 在手机上检查菜单、按钮、表单和结账 | 文字重叠、菜单打不开 |
| 网站发出的邮件 | 订单、预约和密码邮件,发到测试邮箱 | 邮件缺失、重复或措辞不对 |
| 速度 | 关键页面与改动前的速度对比;参见WordPress网站为什么慢 | 新插件让页面明显变慢 |
| 语言和搜索设置 | 马来文和中文版本;测试站仍有 noindex,线上网站没有 | 语言错误,或者隐藏了错误的网站 |
对于由多人确认的较大改动,可以借用业务系统用户验收测试的做法:测试前先议定清单,让真正使用网站的人来测,并以书面方式签收。
把改动搬到线上网站
- 在线上手动重复这个改动。较慢,但只动您想动的部分,不会碰线上的订单和询盘。这是更新和小改动的较安全做法。
- 把测试站推送到线上。由工具或开发者把测试站覆盖到线上网站,这是上线改版的自然方式。麻烦在于:数据库推送可能覆盖自您建立副本以来线上发生的一切,例如订单、表单记录和新账户。如果网站接收订单,只推送文件,或者冻结线上改动,并在一个简短、有计划的时间窗口内推送。
大型测试站工作进行期间,不要去改线上网站,除非您记下了改动清单,以便在测试站重做,或推送后重新应用。两份副本同时变化就会各走各路,工作就是这样丢掉的。时间也要选好:安静时段好过促销或节庆旺季,改完之后,要在客户使用网站的时段去看一看。
用备份回退
测试站能降低坏改动的概率,但不能消除它,因为线上网站有时与副本的表现不同。开始之前就要想好退路。
- 知道备份里有什么。文件、数据库,还是两者都有?会改动数据库的插件更新,需要把数据库也恢复回去。
- 知道怎么恢复。在需要之前就弄清楚步骤,以及谁能操作。Gotka把每日备份列为主机功能,但本文不描述恢复如何运作,所以请通过客户门户提交工单,询问您的套餐恢复涉及什么。
- 恢复数据库等于把时间倒回去。备份之后保存的一切,例如新订单和询盘,都会随之消失。如果网站接收订单,先导出最近的订单,或者只恢复文件。
- 回退后要再测试。恢复可能解决了看得见的问题,却留下另一个。
没演练过的回退只是希望,不是计划。对重要的网站,请开发者在测试站上给您演示一次恢复,这样第一次就不会发生在紧急关头。
常见错误
- 测试站发出真实邮件。副本给真实客户发邮件,说的却是早已完成的订单。测试前先关闭发信。
- 测试站被收录。没有密码,没有 noindex,或者只靠一条 robots.txt 规则。
- 忘了刷新或复测。在几个月前做的副本上测试,或者以为在测试站成功的改动在线上一定成功。
- 线上和测试站同时改。推送测试站时,线上新增的订单和修改会丢失或被覆盖。
- 把 noindex 或全部屏蔽的设置带到线上。线上网站从搜索中消失,几个星期都没人发现。
- 留着旧的测试站。它们存有客户数据和旧代码。做完就删掉副本,并保护好主机登录,参见cPanel账户安全指南。
- 推送前没做新备份。推送可能中途失败。
Gotka Technologies 的定位
Gotka的Go AI主机套餐在LiteSpeed服务器上运行cPanel,提供免费SSL、每日备份、免费迁移,以及通过客户区工单提供的24/7支持,价格从36个月Go AI Lite套餐每月RM17.80起。本文只从一般角度讲测试站,并不表示任何Gotka套餐含有测试站工具,所以如果您想知道自己的套餐或其cPanel有没有合适的功能,请先从客户门户提交工单询问,再决定是否依赖。如果您不想自己动手改,可选的Care维护套餐每月RM250起,其中Care Basic每月包含最多1小时的内容编辑;您也可以拒绝,自己维护网站。保持网站健康的成本,见马来西亚网站维护费用,而主机账户第一周清单列出了应尽早确认的账户基础事项。
本文使用的关键术语
- 测试站(staging site):网站的私有副本,用来在改动上线前测试。
- 线上网站(production):访客和客户实际使用的真实网站。
- 备份:文件和数据库的存档,出问题时用来恢复。
- 数据库:网站存放页面、设置、用户、订单和表单记录的地方。
- 子域名:您自己域名下的额外地址,常用于私有测试副本。
- noindex:写在页面标签或HTTP响应头里的指令,要求搜索引擎不要收录该页面。
- robots.txt:一个公开文件,用来引导抓取;它不是让页面保持私密的办法。
- 推送(push):把测试站的版本覆盖到线上网站。
- 回退(rollback):让网站回到较早的正常状态,通常通过备份。
- 定时任务:网站按计时器运行的工作,例如提醒、续费和同步。
测试站是什么?为什么要用?
测试站是您线上网站的私有副本,放在不同的地址,让您在访客看到之前先测试改动。您可以用它安全地试验插件、主题或PHP更新,以及页面改版。出了问题只影响副本,您修好或删掉即可。它不同于备份,备份是出问题之后才用来恢复的。
每次更新网站都需要测试站吗?
不需要。改错别字、营业时间或照片这类小编辑,在做好最近的备份后,通常可以直接改线上。会影响许多页面、金钱或询盘的改动才用测试站:主题、页面构建器或PHP更新、新插件、结账、付款、预约或表单改动,以及改版。拿不准时,就当它比看上去更有风险。
怎样建立测试站?
先查您的主机在套餐上有没有测试站工具,以及它复制什么。没有的话,向开发者要他们的测试副本,或把文件和数据库复制到子域名或有密码保护的文件夹,并在设置里修改网站地址。文件和数据库都要复制,测试前先设置密码,并关闭真实的邮件和付款。
怎样让测试站不出现在Google搜索结果里?
先设置密码,因为Google的说法是:要让页面不出现在搜索结果里,就用 noindex 阻止收录或用密码保护。再把 noindex 规则作为第二层。不要只靠 robots.txt:如果它挡住了页面,爬虫就看不到 noindex 规则,只要别的页面链接到它,这个地址仍可能出现。
测试站会发送真实邮件或接收真实订单吗?
会,如果您把线上数据库连同邮件、付款和定时任务设置原样复制过去,却什么都不改。副本可能给真实客户发邮件,或把测试订单发到真实的支付网关。测试前先关闭发信或改发到测试邮箱,使用支付网关的测试模式或停用付款,并在测试站暂停定时任务。
在线上重复改动之前应该测试什么?
测试带来收入或询盘的部分:每个表单以及消息到了哪里、测试模式下的结账、手机上的菜单和关键页面、网站发出的邮件,以及与改动前对比的速度。一次只改一样,这样出问题时容易找到原因。然后在线上重复改动,在那里再测一遍,并保留一份新备份。


