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

如何通过SSH手动将LEMP环境WordPress站点迁移到子域名做开发测试

WordPress 子域名手动SSH迁移操作指南

你的思路整体正确,但存在两处问题

  • 你写的sed命令语法有误,正则分隔符和特殊字符使用不当,且只替换PHP文件覆盖不全
  • 遗漏了最重要的数据库内容替换,WordPress绝大多数域名、路径配置存在数据库中,仅修改文件无法完成迁移

后续操作步骤

1. 先修正文件内容替换命令

首先cd到你dev站点的根目录(即/var/www/html/dev.website),执行以下命令:

建议先把sed的-i参数改为-i.bak,执行后会自动生成原文件的备份,验证无问题后再删除所有.bak文件即可,出错可随时回滚。

替换域名命令(适配所有常见后缀的文件)

find . -type f \( -name "*.php" -o -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.json" \) -print0 | xargs -0 sed -i 's#://website\.com#://dev.website.com#g'

替换文件路径命令

find . -type f \( -name "*.php" -o -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.json" \) -print0 | xargs -0 sed -i 's#/var/www/html/website#/var/www/html/dev.website#g'

确认无误后删除备份文件

find . -name "*.bak" -delete

2. 数据库内容替换(核心步骤)

不要直接用sed修改数据库备份文件,会破坏WordPress存储的序列化格式数据,导致插件、主题配置失效,推荐使用WordPress官方命令行工具wp-cli操作:

确认wp-cli可用

wp --info

如果正常输出版本信息即可直接使用,未预装的话可通过官方phar包快速安装。

执行数据库全局替换

# 替换域名,协议和原站保持一致即可,http/https不要写错
wp search-replace 'https://website.com' 'https://dev.website.com' --all-tables
# 替换文件路径
wp search-replace '/var/www/html/website' '/var/www/html/dev.website' --all-tables
# 清空站点缓存
wp cache flush

3. 验证wp-config.php配置

确认文件内的DB_NAME、DB_USER、DB_PASSWORD参数指向你克隆后的dev数据库,而非原主站数据库。
可在文件中/* That's all, stop editing! Happy publishing. */行之前添加以下两行配置,强制固定站点地址,避免异常跳转:

define( 'WP_HOME', 'https://dev.website.com' );
define( 'WP_SITEURL', 'https://dev.website.com' );

4. 修正目录权限

确保站点目录权限和Web服务器运行用户匹配,以Nginx默认的www-data用户为例:

chown -R www-data:www-data /var/www/html/dev.website
find /var/www/html/dev.website -type d -exec chmod 755 {} \;
find /var/www/html/dev.website -type f -exec chmod 644 {} \;

5. 功能验证

访问子域名后台登录,测试内页访问、附件加载、插件功能是否正常即可。

内容的提问来源于stack exchange,提问作者Konverts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:36:05