网站迁移
前言:数据丢失会导致我累计的所有东西都无了,数据的重要性不言而喻,做了一个博客网站,考虑到最不能接受的事情就是,服务商跑路,数据丢失等等都会对我的博客造成不可逆的影响,此文解决数据安全问题,出现问题也不怕,不要把希望寄托在别人身上。
我使用宝塔来配置环境,现已搭建好博客网站,再复刻一个同样的网站并利用自动化脚本进行网站的数据实时备份,实现两个相同的网站,当然这只是验证可行性,linux下一切皆文件,对于数据需要保存哪部分??接下来开始探究吧
环境配置
- 复刻相同网站最好保证环境的一致,以下是现在的网站的环境,

- 接下来我们在备份的主机是同样的配置,各个版本最好保持一致

- 等待安装完成

备份数据
- 等待安装与此同时我们先把原网站进行打包(这里不包含数据库的数据)
网站数据

数据库数据
- 找到该目录下载数据库备份的数据

- 我们可以找到该目录查看

- 下载好的两个数据包如下,等会会用

域名解析DNS

- 再ping一下

添加站点
- 等待环境安装好了之后添加站点

- 配置成功会弹出一下内容,将以上数据保存

- 打开站点目录里面有一些默认的文件(可能有的没有)

- 如果默认有index.html 这时可以访问了

- 接下来复刻网站了

添加站点数据
- 将网站文件上传至站点目录并解压




- 至此站点文件添加完成了,我们访问以下

- 站点搜索到的数据库不存在,因为我们还没有添加数据库
添加数据库

解压:
使用gunzip命令:
gunzip db_typecho_20230916_050301.sql.gz导入.sql备份文件: 如果备份是一个.sql文件,可以使用以下命令导入它:
mysql -u [username] -p [database_name] < [backupfile.sql]其中:
[username]是MySQL的用户名。[database_name]是要导入数据的数据库名称。[backupfile.sql]是备份文件的路径。
会提示输入密码。输入正确的密码后,备份文件中的SQL命令将被执行,从而恢复数据。
username这里的用户名写 root
database_name写数据库名称 我们上面保存过 www_hdjvpn_top
备份文件的路径 /www/backup/database/gunzip db_typecho_20230916_050301.sql
所以我们这里应该执行的命令为
mysql -u root -p www_hdjvpn_top < /www/backup/database/db_typecho_20230916_050301.sql- 提示输入密码为数据库的root密码

- 当导入好了之后我们还是不能访问网站,需要更改一下Typecho的配置文件
/www/wwwroot/yourdomain.com/config.inc.php打开该文件(原数据):
$db->addServer(array (
'host' => 'localhost', // 数据库服务器地址
'port' => 3306, // 数据库连接端口
'user' => 'root', // 数据库用户名
'password' => '6dffffffffffeb', // 数据库密码
'charset' => 'utf8mb4', // 数据库字符集
'database' => 'typecho', // 数据库名称
'engine' => 'InnoDB', // 数据库引擎
'sslCa' => '', // SSL证书路径(如果使用SSL连接)
'sslVerify' => true, // 是否验证SSL连接
), \Typecho\Db::READ | \Typecho\Db::WRITE);

更改之后就迁移完成了。
当然也可以将两个网站的数据库密码和数据库名称改为一致,这样就不用更改配置文件了,利用自动化脚本可更简单做到多个网站同步,我这里就只是迁移验证一下是否可行,所以没必要
总结:
linux下一切皆文件
网站迁移需保证 站点数据 完整与 数据库信息 完整,迁移过程中站点配置文件包含了数据库配置信息,备份的数据库导入之后需更改此文件