将博客网站完整迁移至本地虚拟机
前言
最早支持过我网站的朋友们都知道,我的博客最初是用 WordPress 搭建的,技术方案是经典的 LAMP 架构。即便放到现在来看,第一版网站的设计依然很有美感。而且作为最热门的博客框架,WordPress 拥有大量成熟的插件,功能非常丰富。
原本我考虑采用双站并行的策略,但由于目前主要的技术栈是 Vue2 / Vue3 + SpringBoot,想要维持两个不同架构的网站同时运行,成本确实比较高。但又舍不得这份回忆,所以就想到把原来的网站迁移到虚拟机里,留作纪念和观赏。
虚拟机
镜像这里我选择采用原有的系统ubuntu22.04 Lts版本
Ubuntu 22.04.5 LTS (Jammy Jellyfish)
虚拟机软件使用VM ware17
详细流程这里不再赘述只说两个注意的点
- 不要使用desktop-amd64版本
- 安装路径不要中文
网卡配置
我这里因为网络环境经常变动的缘故所以复刻服务器双网卡策略
第一张网卡设置为仅主机模式,地址选用静态 作为服务器的管理口
第二张网卡设置为桥接模式用于共享主机网卡作为业务口使服务器通网
network:version: 2renderer: networkd ethernets:ens33:addresses:- 192.168.18.81/24 #替换成实际静态Iproutes:- to: defaultvia: 192.168.18.1 # 替换为实际网关地址nameservers:addresses: [192.168.18.81] # 替换为 DNS 服务器地址ens37:dhcp4: true
安装 lamp 环境
这里最方便的方式还是宝塔使用命令一键安装
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec
然后就和刚开始搭建网站一样.新建网站一键部署wordpess
迁移文件
- 打包网站备份文件
- 打包数据库文件
如果有宝塔面板可以直接图形化备份导出
如果没有宝塔就网页文件就tar打包后scp导出,数据库可以选择mysqldump等工具导出
在源服务器上将 WordPress 文件夹(即博客文件夹)打包为一个压缩文件
zip -r wordpress.zip /path/to/wordpress
将压缩文件通过 scp 命令拷贝到目标服务器上
scp wordpress.zip user@目的ip:/path/to/destination_folder
在目标服务器上解压缩 WordPress 文件
unzip wordpress.zip
连接到 MySQL 数据库,并创建一个新的数据库
在 WordPress 的 wp-config.php 文件中更新数据库连接信息,包括数据库名称、用户名和密码。
vim wp-config.php
define('DB_NAME', 'wordpress_database'); /* 数据库名 */
define('DB_USER', 'root'); /* 用户名 */
define('DB_PASSWORD', 'new_password'); /* 密码 */
如果有宝塔面板数据库文件等直接导入省时省事
网站适配
现在重启服务就可以通过前面我们设置过的管理口ip初步访问我们的网站了
但是这个时候因为域名url的访问方式问题肯定会造成很多问题,比如样式丢失和链接错误的问题
并且这个时候我们一般由公网服务迁移到内网肯定会造成https降到http,我们目前最急迫的需求是先让网站跑起来,所以先处理基本访问,再考虑HTTPS
这里我就拿我自己的情况https://one.helloljm.com迁移到http://192.168.18.81示例
修改host文件
为了让你自己的电脑能通过浏览器访问 http://192.168.18.81来管理和测试网站,我们需要暂时“欺骗”一下你的电脑,让它认为就是这个 IP(后续别忘了删除)。
- 找到 hosts 文件:
- Windows: C:\Windows\System32\drivers\etc\hosts
- Mac / Linux: /etc/hosts
- 编辑 hosts 文件(需要管理员权限):
- 用记事本(Windows)或终端(Mac/Linux)以管理员身份打开这个文件。
- 在文件末尾添加一行:
192.168.18.81 one.helloljm.com
保存文件。
- 刷新 DNS 缓存:
- Windows: 打开命令提示符(管理员),输入 ipconfig /flushdns
这样做的好处:你现在可以在浏览器里直接访问 http://one.helloljm.com,它就会指向你的新虚拟机
修改wordpress数据库中的网址
这个时候分两种情况,一种是还可以正常登录后台一种是无法登录后台
方法A:通过 WordPress 后台(最简单,如果还能访问旧后台的话)
- 访问你旧服务器上的 WordPress 后台(https://one.helloljm.com/admin)
- 进入 设置-> 常规。
- 将 WordPress 地址(URL) 和 站点地址(URL) 两个字段都修改为 http://192.168.18.81。
- 点击保存。
方法 B:直接修改数据库(更可靠的方法)
UPDATE wp_options SET option_value = replace(option_value, 'your_旧网站域名', 'your_新网站域名') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'your_旧网站域名', 'your_新网站域名');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'your_旧网站域名', 'your_新网站域名');
UPDATE wp_comments SET comment_content = replace(comment_content , 'your_旧网站域名', 'your_新网站域名');
做到这里想必大家应该和我一样大部分样式已经恢复了,但是还是有一些地方会有瑕疵
我们采用更全面的wordpress插件数据库url替换工具
这里推荐个子比主题的插件,非常适合我们中文国人体质
WordPress一键完美换域名插件教程-数据库批量替换免费插件-WordPress主题模板-zibll子比主题
这个时候通过ctrl+F5清除缓存访问网页你就会发现,熟悉的站点已经回来了
这个时候如果还是想通过公网访问可以采用内网穿透的方式实现
如果只想要在局域网上运行通过访问我们的业务口ip已经可以正常访问到网站了
追求完美可以参考我前面的文章,添加一个内网域名解析服务器,实现域名访问
明弟有理想 | 个人网站 - 生活记录与技术分享
可能后面考虑做一个内网ssl证书和内网穿透的教程
可能等我闲的不行的时候就有动力写了