WordPress staging workflow development testing

每个WordPress网站主都经历过那种恐惧时刻:您更新了一个插件,刷新页面,突然间网站崩溃了。按钮消失了。布局一团糟。结账页面返回空白白屏。客户正在尝试联系您,而您却在正式、能产生收入的网站上慌乱地查看错误日志,试图弄清楚出了什么问题。

测试环境可以完全消除这种情况。测试网站是您正式网站的私密隐藏副本,您可以在其中进行更改、彻底测试,并验证它们是否正常工作——然后再触碰正式网站。专业机构和开发团队认为这是不可或缺的。本指南将向您展示如何在DirectAdmin上设置测试环境,并围绕它建立可重复的工作流程。

专业原则:没有任何更改在未经测试环境测试的情况下上线。这适用于每次插件更新、主题修改、WordPress核心升级和自定义代码片段——没有例外。

为什么需要测试网站

使用测试环境的理由不仅仅是避免紧急情况。测试工作流程改善了WordPress开发和维护的各个方面:

在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">';
    });
}

专业测试工作流程

创建测试环境只是工作的一半。围绕它建立一致的工作流程才能真正消除部署风险。以下是专业团队遵循的流程:

在进行任何更改之前

  1. 获取生产环境的最新快照:导出正式数据库并记录当前插件版本
  2. 将该快照同步到测试环境(用新的导出文件覆盖测试数据库)
  3. 在进行更改之前,验证测试环境在当前状态下是否正常工作

在测试环境中进行更改

将测试过的更改部署到生产环境

最重要的原则:推送文件,而不是整个数据库。您的生产数据库包含测试环境中不存在的正式订单、评论和用户注册信息。覆盖它将销毁这些数据。

正确的部署流程:

  1. 识别更改的文件:记录您在测试环境中修改或添加的每个文件
  2. 首先备份生产环境:在触碰正式网站之前始终进行完整备份(参见WordPress备份与恢复指南)
  3. 启用维护模式:在部署过程中将正式网站置于维护模式(参见WordPress维护模式设置)
  4. 仅复制更改的文件:只上传修改过的PHP、CSS和JS文件——而不是整个网站
  5. 如需执行数据库迁移:如果您的更改需要架构更改(例如新插件的数据库表),让插件在正式数据库上运行其迁移,不要从测试环境导入
  6. 禁用维护模式并验证:部署后立即测试正式网站

关键提示:切勿使用廉价测试插件中会覆盖生产数据库的"迁移"或"推送到正式"功能。您将丢失WooCommerce订单、用户数据以及在测试快照拍摄后创建的任何内容。始终推送文件,而不是数据库。

使用WP Staging插件(自动化方法)

如果手动设置感觉过于复杂,WP Staging是最受欢迎的专用测试插件。它通过几次点击自动完成文件复制和数据库复制。主要功能:

需要了解的限制:WP Staging的免费版不会自动将数据库更改推送到生产环境。您仍需要手动处理数据库迁移。实际上,这是更安全的行为——请参见上面关于覆盖生产数据库的警告。

保持测试环境同步

一个常见的错误是让测试环境与生产环境相差太远,以至于测试环境中的测试变得毫无意义。在测试环境中运行良好的插件可能与您上个月在生产环境中添加的插件产生冲突。

推荐的同步计划:

上线前在测试环境中应检查的内容清单

测试区域 检查内容
首页布局、主图、导航、CTA按钮正确加载
导航所有菜单链接正常解析,下拉菜单在移动端正常工作
表单联系表单提交并正确发送电子邮件
WooCommerce结账加入购物车、结账页面、支付网关跳转
搜索站内搜索返回相关结果
登录/账户登录、登出、密码重置均正常工作
移动端布局无横向滚动,触控目标可访问
PHP错误日志错误日志中无致命错误或关键警告
页面速度运行快速Lighthouse检查——无明显性能退步

AsiaGB上WordPress主机的测试环境

配备DirectAdmin的AsiaGB主机为您提供运行专业测试环境所需的一切。您将获得:

对于在AsiaGB共享主机上托管的网站,上述测试工作流程无需额外软件即可直接使用。您还可以探索共享主机上的WordPress测试环境,了解特定于主机的技巧。

应避免的常见测试环境错误

即使是经验丰富的开发者也会犯这些测试环境方面的错误:

配备DirectAdmin的WordPress主机 — 为测试环境做好准备

AsiaGB主机包含DirectAdmin、免费SSL、无限子域名和多个MySQL数据库——运行专业测试工作流程所需的一切。起价฿500/年。

查看AsiaGB主机方案 →