将 LEMP Wordpress 站点手动迁移到子域以进行测试/开发
Posted
技术标签:
【中文标题】将 LEMP Wordpress 站点手动迁移到子域以进行测试/开发【英文标题】:Manual Migration of a LEMP Wordpress site to a subdomain for testing/development 【发布时间】:2021-12-11 04:49:23 【问题描述】:出于开发目的,我正在尝试手动将 wordpress 站点迁移到子域。网站太大,无法使用免费的 WP 迁移工具。
如何通过 ssh 手动执行迁移?
到目前为止已完成的步骤:
-创建子域。 -MariaDB 克隆。 -DNS 和 nginx 已确认。 -Wordpress 安装在子域上并正常工作。
从这里开始,这是我尝试过的:
-
备份。
通过 ssh 将所有文件从 mainsite 目录复制到 dev.mainsite 文件夹,除了 wp-config.php
???
我的猜测是将现在克隆的子域目录中的 [://website.com] 的所有实例递归查找并替换为 ://dev.website.com ,然后是 [var/www/html 的所有实例/website] 替换为 [var/www/html/dev.website]
我最终尝试了这段代码,将 php 替换为 dev 子域目录中的每个文件类型:
find . -type f -name "*.php" -print0 | xargs -0 sed -i "s/[mainsite]/[dev.mainsite]/g"
find . -type f -name "*.php" -print0 | xargs -0 sed -i "s/var/www/html/mainsite/var/www/html/dev.mainsite/g"
但我不确定执行这些命令的正确语法以避免参数错误,并且不破坏 sub.site - 或者它们是否是我正在寻找的正确命令
我什至接近吗?提前感谢您的帮助!
【问题讨论】:
【参考方案1】:您的域名不应出现在模板文件中:WordPress 使用函数。
你应该只需要编辑数据库。
安装WP-CLI - 用于将old.com
转换为new.com
的WordPress 命令行工具。
首先:编辑 wp-config.php
define('WP_SITEURL', 'http://new.com');
define('WP_HOME', 'http://new.com');
第二:替换信息
WP-CLI search-replace 命令将转换序列化信息。
首先搜索最长的字符串。
wp search-replace 'http://old.com' 'http://new.com' --all-tables --precise
然后所有出现的旧域。
wp search-replace 'old.com' 'new.com' --all-tables --precise
就是这样。您可以登录新站点。
【讨论】:
这非常有用!使用此工具后,我仍然在 wp 内容文件夹中找到了一些原始 url 的实例。我能够通过新站点根目录中的以下内容清理它们:find . -type f -name ".php" -print0 | xargs -0 sed -i "s,https://oldsite,https://newsite,g"
find . -type f -name ".css" -print0 | xargs -0 sed -i "s,https://oldsite,https://newsite,g"
以上是关于将 LEMP Wordpress 站点手动迁移到子域以进行测试/开发的主要内容,如果未能解决你的问题,请参考以下文章