You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure App Service上的WordPress迁移至同租户不同数据库实例

同一租户内Azure App Service WordPress迁移方案(配置一致、数据库独立)

针对你的需求,不用WordPress插件、避开ARM模板导出依赖问题的可行方案如下:

方法一:AZ CLI 复刻配置 + 代码迁移

这种方式可以精准复刻原站点的配置,同时指定新数据库,步骤如下:

  1. 导出原站点核心配置
    先获取原App Service的关键配置信息,方便后续同步:
# 获取原站点应用设置(排除数据库相关项)
az webapp config appsettings list --name <原站点名> --resource-group <原资源组> | jq -r '.[] | select(.name | test("WORDPRESS_DB_.*|DATABASE_URL") | not) | "\(.name)=\(.value)"' > appsettings.txt

# 获取原站点运行时配置(比如PHP版本)
az webapp config show --name <原站点名> --resource-group <原资源组> --query '[phpVersion, linuxFxVersion]'
  1. 创建新的App Service实例
    复用原服务计划(保证配置一致)创建新站点:
az webapp create --name <新站点名> --resource-group <目标资源组> --plan <原服务计划名>
  1. 同步原站点配置到新站点
  • 导入应用设置:
    az webapp config appsettings set --name <新站点名> --resource-group <目标资源组> --settings @appsettings.txt
    
  • 同步运行时配置(替换为你获取到的值):
    az webapp config set --name <新站点名> --resource-group <目标资源组> --php-version 7.4 --linux-fx-version "PHP|7.4"
    
  • 同步扩展/SSL/域名:如果原站点有SSL证书或自定义域名,用CLI手动绑定:
    # 绑定SSL证书(需确保证书已存在于目标资源组)
    az webapp config ssl bind --certificate-name <证书名> --ssl-type SNI --name <新站点名> --resource-group <目标资源组>
    
  1. 迁移WordPress代码
    导出原站点代码包并部署到新站点:
# 导出原站点代码
az webapp deployment source config-zip --name <原站点名> --resource-group <原资源组> --src ./wordpress-site.zip

# 部署到新站点
az webapp deployment source config-zip --name <新站点名> --resource-group <目标资源组> --src ./wordpress-site.zip
  1. 配置新数据库连接
    在新站点添加新数据库的应用设置,覆盖wp-config.php中的旧配置:
az webapp config appsettings set --name <新站点名> --resource-group <目标资源组> --settings \
  WORDPRESS_DB_HOST="<新数据库地址>" \
  WORDPRESS_DB_USER="<新数据库用户名>" \
  WORDPRESS_DB_PASSWORD="<新数据库密码>" \
  WORDPRESS_DB_NAME="<新数据库名>"

之后访问新站点,完成WordPress初始化即可(或导入预准备的数据库结构)。

方法二:优化ARM模板导出,规避依赖问题

如果偏好模板化部署,可通过以下方式解决导出依赖问题:

  1. 精准导出所需资源
    只导出App Service和服务计划这两个核心资源,排除其他无法导出的依赖:
# 获取原App Service和服务计划的资源ID
az webapp show --name <原站点名> --resource-group <原资源组> --query id -o tsv > app-id.txt
az appservice plan show --name <原服务计划名> --resource-group <原资源组> --query id -o tsv > plan-id.txt

# 导出仅包含这两个资源的ARM模板
az group export --name <原资源组> --resource-ids $(cat app-id.txt) --resource-ids $(cat plan-id.txt) --output-file template.json
  1. 修改模板参数化
    编辑template.json,将站点名称、数据库连接字符串改成可配置参数,同时删除模板中引用外部依赖的无效字段(比如私有链接、特定服务绑定)。

  2. 部署修改后的模板
    通过参数指定新站点和新数据库信息:

az deployment group create --resource-group <目标资源组> --template-file ./template.json --parameters \
  siteName=<新站点名> \
  wordpressDbHost="<新数据库地址>" \
  wordpressDbUser="<新数据库用户名>"

关键注意事项

  • 确保新数据库与App Service网络可达(同区域或配置VNet连接);
  • 若代码包中包含旧的wp-config.php,应用设置中的数据库配置会自动覆盖它,无需手动修改文件;
  • 迁移后建议清理新站点的缓存,避免残留旧站点数据。

内容的提问来源于stack exchange,提问作者Tatiana Muñoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:58:38