以下是 WordPress多站点(Multisite)搬家的详细步骤,适用于更换服务器或域名。
该教程已经经过找找网成功测试。
一、准备工作
- 备份所有数据
- 网站文件:通过FTP/SFTP下载整个WordPress根目录(包含
wp-content、wp-config.php等)。 - 数据库:使用phpMyAdmin导出数据库(选择“自定义”导出格式,勾选“添加 DROP TABLE”选项)。
- 记录关键信息
- 原站点的数据库名称、用户名、密码。
- 原多站点的域名(如
old-domain.com)和文件路径(如网站根目录绝对路径)。
二、迁移到新服务器/域名
1. 上传文件到新服务器
- 将备份的WordPress文件通过FTP/SFTP上传到新服务器的目标目录。
- 确保文件权限正确(目录通常为
755,文件为644,wp-content可能需要775)。
2. 创建新数据库
- 在新服务器创建数据库,并记录新数据库的名称、用户名、密码。
- 保持数据库字符集与原数据库一致(通常为
utf8mb4_unicode_ci)。
3. 修改配置文件
- 编辑
wp-config.php,更新以下信息:
define('DB_NAME', '新数据库名');
define('DB_USER', '新数据库用户');
define('DB_PASSWORD', '新数据库密码');
define('DB_HOST', 'localhost'); // 根据实际修改
- 如果更换域名,添加以下代码(替换
new-domain.com):
define('DOMAIN_CURRENT_SITE', 'new-domain.com');
三、导入并修改数据库
1. 导入数据库
- 使用phpMyAdmin将备份的数据库导入到新服务器。
2. 替换旧域名/路径
- 情况1:仅更换服务器,域名不变
替换所有旧服务器绝对路径(如/home/olduser/public_html→/home/newuser/public_html)。 - 情况2:更换域名
替换所有旧域名为新域名(如old-domain.com→new-domain.com)。 - 推荐工具:
- WP-CLI(命令行):
bash wp search-replace "old-domain.com" "new-domain.com" --all-tables wp search-replace "/old/path" "/new/path" --all-tables - 插件/脚本:
使用 Better Search Replace 插件或 Search Replace DB 脚本(避免序列化数据损坏)。
3. 更新多站点配置
- 检查以下表的数据是否正确:
wp_blogs:所有子站点的域名和路径。wp_site:主站点的域名和路径。wp_sitemeta:确认siteurl和home等选项。
四、配置服务器环境
- 设置伪静态规则
- 确保
.htaccess(Apache)或Nginx配置包含多站点规则。 - 默认多站点
.htaccess内容:RewriteEngine On RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
- 配置域名解析
- 如果更换域名,需将新域名解析到新服务器IP,并确保服务器已绑定该域名。
五、测试与修复
- 访问主站点
- 打开新域名,检查是否能正常加载。
- 登录后台(
new-domain.com/wp-admin),检查插件、主题是否正常。
- 检查子站点
- 逐个访问子站点,确认媒体文件、链接是否正常。
- 若图片无法显示,检查
wp-content/uploads/sites/目录权限是否为755或775。
- 处理常见问题
- 404错误:重新保存固定链接(后台 → 设置 → 固定链接 → 点击“保存”)。
- 数据库连接错误:检查
wp-config.php中的数据库信息。 - 混合内容警告(HTTPS):在数据库中替换
http://为https://,并更新wp-config.php添加:php define('FORCE_SSL_ADMIN', true); $_SERVER['HTTPS'] = 'on';
六、收尾工作
- 删除临时文件
- 移除数据库备份文件(如
search-replace-db.php)。
- 重定向旧域名(可选)
- 在旧服务器添加301重定向(通过
.htaccess或Nginx配置),将流量指向新域名。
注意事项:
- 如果使用子目录模式,确保路径替换准确。
- 迁移后建议暂时禁用缓存插件,避免冲突。
- 测试时可通过修改本地Hosts文件强制解析到新服务器(无需等待DNS生效)。
完成以上步骤后,你的WordPress多站点应已成功迁移!

