
每个WordPress网站主都经历过那种恐惧时刻:您更新了一个插件,刷新页面,突然间网站崩溃了。按钮消失了。布局一团糟。结账页面返回空白白屏。客户正在尝试联系您,而您却在正式、能产生收入的网站上慌乱地查看错误日志,试图弄清楚出了什么问题。
测试环境可以完全消除这种情况。测试网站是您正式网站的私密隐藏副本,您可以在其中进行更改、彻底测试,并验证它们是否正常工作——然后再触碰正式网站。专业机构和开发团队认为这是不可或缺的。本指南将向您展示如何在DirectAdmin上设置测试环境,并围绕它建立可重复的工作流程。
专业原则:没有任何更改在未经测试环境测试的情况下上线。这适用于每次插件更新、主题修改、WordPress核心升级和自定义代码片段——没有例外。
为什么需要测试网站
使用测试环境的理由不仅仅是避免紧急情况。测试工作流程改善了WordPress开发和维护的各个方面:
- 插件冲突:某些插件之间的冲突只有在完全配置的网站上才会出现,而不是单独测试时。测试环境让您可以重现完整的生产环境并安全地捕捉这些冲突。
- 主题更新:重大主题更新有时会破坏子主题自定义设置或删除您已自定义的模板文件。先在测试环境中测试,可以让您在访客看到之前识别并修复这些问题。
- WooCommerce更改:支付网关更新、税收设置更改和配送规则修改可能会悄悄破坏结账流程。在包含真实产品数据的测试环境中测试这些内容可以保护您的收入。
- WordPress核心升级:WordPress重大版本(如6.x)有时与旧插件或主题存在兼容性问题。测试环境为您提供了在升级生产环境之前验证所有内容是否兼容的安全环境。
- 自定义代码开发:functions.php编辑和自定义插件应始终在测试环境中开发和测试。正式网站上functions.php中的语法错误会立即触发白屏死机。
- 数据库迁移:数据库中的搜索替换操作——例如更改域名或从HTTP迁移到HTTPS——是不可逆的。请先在测试环境中测试。
在DirectAdmin中设置测试网站
DirectAdmin让使用子域名创建测试环境变得简单直接。以下是完整的分步操作流程。
步骤1 — 创建测试子域名
登录DirectAdmin并进入域名设置。创建一个新子域名,例如staging.yourdomain.com。DirectAdmin将为该子域名创建一个专用文档根目录文件夹,通常位于/home/username/domains/staging.yourdomain.com/public_html/。
命名提示:使用不明显的子域名,如dev.yourdomain.com或test-2026.yourdomain.com,使搜索引擎和访客更难意外发现它。您还将在后续步骤中为其设置密码保护。
步骤2 — 将WordPress文件复制到测试环境
您需要在测试子域名上拥有正式网站文件的精确副本。有两种方法:
方法A — 文件管理器(最简单):进入DirectAdmin的文件管理器。导航到正式网站的public_html/文件夹。选择所有文件和文件夹,然后使用复制功能将它们复制到测试子域名的public_html/目录。这样可以在服务器上保留所有内容,对较小的网站来说速度很快。
方法B — FTP + 本地存档:通过FTP下载正式网站,然后上传到测试目录。速度较慢,但如果您想同时创建本地备份,这很有用。
步骤3 — 创建测试数据库
在DirectAdmin中进入MySQL管理,为测试环境创建新数据库和数据库用户。给它起一个易于识别的名称,如yourusername_staging。
导出正式数据库:进入phpMyAdmin,选择您的正式数据库,然后点击导出。使用默认的SQL格式。然后通过phpMyAdmin将该SQL转储文件导入到您的新测试数据库中。
步骤4 — 更新wp-config.php
在测试文件夹中,打开wp-config.php并更新四个数据库常量以指向您的新测试数据库:
define('DB_NAME', 'yourusername_staging');
define('DB_USER', 'yourusername_stguser');
define('DB_PASSWORD', 'your_staging_db_password');
define('DB_HOST', 'localhost');
步骤5 — 更新数据库中的网站URL
WordPress将自己的URL存储在数据库中。您需要将其更新以匹配您的测试子域名。打开phpMyAdmin,选择您的测试数据库,并运行以下两个SQL查询:
UPDATE wp_options
SET option_value = 'https://staging.yourdomain.com'
WHERE option_name = 'siteurl' OR option_name = 'home';
然后使用WP-CLI或插件在所有序列化数据中运行搜索替换(对于构建器生成的内容是必要的)。WP-CLI命令:
wp search-replace 'https://yourdomain.com' 'https://staging.yourdomain.com' --all-tables
步骤6 — 为测试环境设置密码保护
您的测试网站永远不应该公开可见。进入DirectAdmin的密码保护目录工具,为测试子域名的根目录添加HTTP基本身份验证。这可以防止搜索引擎对其进行索引,也可以防止客户意外访问。
还需在测试网站的wp-config.php中添加以下内容,以在WordPress层面阻止搜索引擎索引:
define('DISALLOW_FILE_EDIT', true);
/* 测试环境不索引 */
if (strpos($_SERVER['HTTP_HOST'] ?? '', 'staging') !== false) {
add_action('wp_head', function(){
echo '<meta name="robots" content="noindex,nofollow">';
});
}
专业测试工作流程
创建测试环境只是工作的一半。围绕它建立一致的工作流程才能真正消除部署风险。以下是专业团队遵循的流程:
在进行任何更改之前
- 获取生产环境的最新快照:导出正式数据库并记录当前插件版本
- 将该快照同步到测试环境(用新的导出文件覆盖测试数据库)
- 在进行更改之前,验证测试环境在当前状态下是否正常工作
在测试环境中进行更改
- 仅在测试环境中应用插件更新、主题更改或代码修改
- 测试每个可能受影响的面向用户的功能:导航、表单、结账、搜索
- 在至少两个浏览器和一个移动设备上进行测试
- 检查错误日志(DirectAdmin → 错误日志)中的PHP警告或提示
- 如果出现问题,在考虑部署之前先在测试环境中修复
将测试过的更改部署到生产环境
最重要的原则:推送文件,而不是整个数据库。您的生产数据库包含测试环境中不存在的正式订单、评论和用户注册信息。覆盖它将销毁这些数据。
正确的部署流程:
- 识别更改的文件:记录您在测试环境中修改或添加的每个文件
- 首先备份生产环境:在触碰正式网站之前始终进行完整备份(参见WordPress备份与恢复指南)
- 启用维护模式:在部署过程中将正式网站置于维护模式(参见WordPress维护模式设置)
- 仅复制更改的文件:只上传修改过的PHP、CSS和JS文件——而不是整个网站
- 如需执行数据库迁移:如果您的更改需要架构更改(例如新插件的数据库表),让插件在正式数据库上运行其迁移,不要从测试环境导入
- 禁用维护模式并验证:部署后立即测试正式网站
关键提示:切勿使用廉价测试插件中会覆盖生产数据库的"迁移"或"推送到正式"功能。您将丢失WooCommerce订单、用户数据以及在测试快照拍摄后创建的任何内容。始终推送文件,而不是数据库。
使用WP Staging插件(自动化方法)
如果手动设置感觉过于复杂,WP Staging是最受欢迎的专用测试插件。它通过几次点击自动完成文件复制和数据库复制。主要功能:
- 在
/yourdomain.com/staging/等目录下创建测试网站,而不是子域名——简化了DNS配置 - 仅复制WordPress核心、主题和插件——跳过缓存文件和其他垃圾
- 免费版支持创建一个测试网站并将所选文件推送到生产环境
- 专业版增加了计划同步、克隆到外部服务器和多站点支持
需要了解的限制:WP Staging的免费版不会自动将数据库更改推送到生产环境。您仍需要手动处理数据库迁移。实际上,这是更安全的行为——请参见上面关于覆盖生产数据库的警告。
保持测试环境同步
一个常见的错误是让测试环境与生产环境相差太远,以至于测试环境中的测试变得毫无意义。在测试环境中运行良好的插件可能与您上个月在生产环境中添加的插件产生冲突。
推荐的同步计划:
- 每次测试会话之前:从生产环境重新同步数据库。这确保测试环境拥有当前的内容、产品目录和用户数据。
- 在生产环境添加任何插件之后:将相同的插件添加到测试环境,以保持两者一致
- 每月:从生产环境对测试环境进行完整文件同步,以捕获直接在生产环境中发生的任何插件自动更新或文件更改
上线前在测试环境中应检查的内容清单
| 测试区域 | 检查内容 |
|---|---|
| 首页 | 布局、主图、导航、CTA按钮正确加载 |
| 导航 | 所有菜单链接正常解析,下拉菜单在移动端正常工作 |
| 表单 | 联系表单提交并正确发送电子邮件 |
| WooCommerce结账 | 加入购物车、结账页面、支付网关跳转 |
| 搜索 | 站内搜索返回相关结果 |
| 登录/账户 | 登录、登出、密码重置均正常工作 |
| 移动端布局 | 无横向滚动,触控目标可访问 |
| PHP错误日志 | 错误日志中无致命错误或关键警告 |
| 页面速度 | 运行快速Lighthouse检查——无明显性能退步 |
AsiaGB上WordPress主机的测试环境
配备DirectAdmin的AsiaGB主机为您提供运行专业测试环境所需的一切。您将获得:
- 无限子域名 — 即时创建
staging.yourdomain.com并配备独立文档根目录 - 多个MySQL数据库 — 每个方案包含多个数据库,测试环境可以拥有独立于生产环境的专属数据库
- phpMyAdmin访问 — 直接在浏览器中导出、导入和运行SQL
- 通过SSH使用WP-CLI — 从命令行运行搜索替换和数据库迁移
- 密码保护目录 — 一键将测试环境锁定在HTTP基本身份验证后面
- 错误日志查看器 — 在测试中捕获PHP错误,无需服务器访问权限
- 99%正常运行时间SLA — 测试环境和生产环境均保持可靠在线
对于在AsiaGB共享主机上托管的网站,上述测试工作流程无需额外软件即可直接使用。您还可以探索共享主机上的WordPress测试环境,了解特定于主机的技巧。
应避免的常见测试环境错误
即使是经验丰富的开发者也会犯这些测试环境方面的错误:
- 忘记在数据库中更新测试环境URL — 测试环境中的内部链接和媒体URL仍然指向正式域名,导致图片和链接损坏
- 在测试环境中使用相同的电子邮件设置 — 测试环境在测试期间会向真实客户发送真实电子邮件。使用Mailtrap等测试SMTP服务,或在测试环境中完全禁用电子邮件发送
- 允许搜索引擎索引 — 如果没有密码保护,Google可能会索引您的测试网站,给正式网站的SEO造成重复内容问题
- 在过时数据上测试 — 如果测试环境使用三个月前的数据库快照,您的测试无法反映当前的产品目录、定价或用户数据
- 在部署过程中覆盖生产数据库 — 最灾难性的错误。始终仅推送文件并运行增量数据库迁移
- 部署过程中没有维护模式 — 在文件复制过程中访问正式网站的访客可能会看到不完整的状态
配备DirectAdmin的WordPress主机 — 为测试环境做好准备
AsiaGB主机包含DirectAdmin、免费SSL、无限子域名和多个MySQL数据库——运行专业测试工作流程所需的一切。起价฿500/年。
查看AsiaGB主机方案 →