typecho博客服务器、数据迁移 –从ECS到轻量服务器
背景: 阿里云提供了一个月的ECS免费试用活动,利用这台服务器搭建了自己的个人博客并把代码托管到了github,使用了两周感觉还不错。现在试用服务马上到期,准备为我的网站购买一台轻量级服务器,并且把这两周的数据迁移到新服务器。
看了一些教程,轻量服务器貌似不能用阿里云的快照功能一键迁移。所以本次纯手动迁移(重新搭建环境,使用之前的网站程序+数据),记录一下全过程。
网站环境: CentOS7,博客使用的是typecho框架,主题叫Nabo,语言php,数据库mysql
迁移思路:
- 购买新服务器,和旧服务器配置相同系统镜像
- 解析域名至新服务器地址
- 在新服务器安装配置LNMP环境
- 把原本网站程序打包拉到新服务器
- phpMyAdmin从旧服务器导出数据并导入新服务器
操作步骤:
1.购买新服务器,和旧服务器配置相同镜像系统
1. 新服务器选了阿里云轻量级服务器,系统镜像CentOS7.3,2核1G,月流量1tb,24块一个月
2. 买好服务器后重置服务器密码
3. 阿里云控制台,防火墙安全组里,放开端口21(给FTP),3306(给数据库),80(HTTP),443(HTTPS)
2.购买域名,解析至服务器地址
1. 迁移前是用IP做网址,这次迁移顺便买了一个域名
2. 进入域名管理(我的是腾讯云):点击我的域名>解析>添加一个a记录,前面字段写@(代表没有任何www等前缀),ip处填服务器的公网IP
3.在新服务器安装配置LNMP环境(使用LNMP一键安装Nginx,php,mysql,并手动设置好配置文件。)
1. mobaxterm(Xshell等软件也可以)新建会话,登录到新服务器,执行如下命令准备环境:
yum -y update
yum -y install wget screen
2. 安装lnmp套装:windows打开lnmp.org并转到下载页面
1.复制下载url
2.回到mobaxterm, 使用wget下载:
3.授权并解压文件:
chmod +X lnmp1.9.tar.gz
tar -xzvf lnmp1.9.tar.gz
4.进入lnmp目录修改配置:
cd lnmp1.9
vim ./include/main.sh
删除这段:
if [ “${Bin}" != "y" ] && [[ "${DBSelect}” =~ ^5|[7-9]|10$ ]] && [ $(free -m | grep Mem | awk ‘{print $2}’) -le 1024 ]; then
echo “Memory less than 1GB, can’t install MySQL 8.0 or MairaDB 10.3+!”
exit 1
fi
然后保存退出(:wq)
5.执行程序安装脚本 :
./install.sh
个人选择参考:mysql 5.5.62 ,按指示设定密码, php选的7.2.34 , memory选的jemalloc
接下来时间有点长,等待安装完成 安装完成后:
Install lnmp takes 16 minutes.
Install lnmp V1.9 completed! enjoy it.
[root@izt4n2i79j9fk2hcdwzqwpz lnmp1.9]#exit
6.重新回到根目录添加一个虚拟主机:
lnmp vhost add
输入刚刚配置的域名sleepwalking.love并回车
Please enter domain(example: www.lnmp.org):
sleepwalking.love
Your domain: sleepwalking.love
如果有其他域名指向同一个主机,继续填加
Enter more domain name(example: lnmp.org sub.lnmp.org):
8.219.233.112
domain list: sleepwalking.love 8.219.233.112
设置目录,可保持不变,直接回车:
Please enter the directory for the domain: sleepwalking.love
Default directory: /home/wwwroot/sleepwalking.love:直接回车
Virtual Host Directory: /home/wwwroot/sleepwalking.love
(PS:接下来一路Y, 需要输name的时候输typecho,密码自己设定)
设置伪静态相关:
Allow Rewrite rule? (y/n)
y
输入typecho
Please enter the rewrite of programme,wordpress,discuzx,typecho,thinkphp,laravel,codeigniter,yii2,zblog rewrite was exist.
(Default rewrite: other):typecho
You choose rewrite: typecho
设置PHPpath :
Enable PHP Pathinfo? (y/n)
y
Enable pathinfo.
设置log相关:
Allow access log? (y/n)
y
Enter access log filename(Default:sleepwalking.love.log):
You access log filename: sleepwalking.love.log
支持IPV6
Enable IPv6? (y/n)
y
Enabled IPv6 Support in current Virtualhost.
设置数据库:
Create database and MySQL user with same name (y/n)
y
Enter current root password of Database (Password will not shown):输入密码
OK, MySQL root password correct.
Enter database name:typecho
Your will create a database and MySQL user with same name: typecho
Please enter password for mysql user typecho:输入密码
Your password: YOURPASSWORD
配置证书:
Add SSL Certificate (y/n)
y
1: Use your own SSL Certificate and Key
2: Use Let’s Encrypt to create SSL Certificate and Key
3: Use BuyPass to create SSL Certificate and Key
4: Use ZeroSSL to create SSL Certificate and Key
Enter 1, 2, 3 or 4:2
Please enter your email address:[email protected]
Email address [email protected] is valid.
Using 301 to Redirect HTTP to HTTPS? (y/n)y
3.修改配置
vim /usr/local/nginx/conf/vhost/(
你设置的第一个域名
).conf
注释掉include rewrite/typecho.conf;
保存退出
4.重启lnmp
lnmp restart
到这里网站的运行环境就配置好了~
4.把原本网站程序打包拉到新服务器
如果是第一次安装,直接到官网下载正式版然后通过ftp放到/home/wwwroot/
这个文件夹下,授权755、解压、提取出build
文件夹里的内容就好了
如果原本网站程序里有自定义修改了东西、上传过新文件或者配置了主题、插件等,建议还是打包原本的网站程序
以下是打包上传过程:
mobaxterm登录旧服务器:
cd /home/wwwroot
tar -zcvf backup.tar.gz ./(你的网站文件夹
)
使用ftp 传到本地
使用ftp把本地文件传到新服务器的/home/wwwroot/
登录新服务器:
cd /home/wwwroot/(
你的网站文件夹
)
解压并调整文件位置
tar -zxvf backup.tar.gz
我这里解压后的文件夹是47.94.225.210
chmod 755 47.94.225.210
cp -a 47.94.225.210/. .
vim config.inc.php
这里我修改了username 和 password,也可以不修改
到这里网站程序就安装好了~
5.phpMyAdmin从旧服务器导出数据并导入新服务器
如果是第一次安装,直接输入域名.install.php
就可以配置数据库等初始信息
如果原本有数据、只是迁移的话不需要再次install!
以下是博主的错误经验,可以跳过:
安装好后进入了http://8.219.233.112/install.php,像第一次初始化网站一样在第二步配置了账号密码
打开http://8.219.233.112/admin
-----------------------------------------------
!!后面发现没办法导入数据,只能把刚刚初始化的数据表都删掉:
清空初始化的数据库
1. 找到删表语句
SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'typecho';
2. 得到很多提示命令,依次执行命令后数据库就清空了
1. 旧服务器导出数据:
打开旧博客地址/phpMyadmin
网站,找到typecho表,点导出>快速导出,把文件下载到本地
2. 新服务器导入数据:
打开新博客地址/phpMyadmin
网站,找到typecho表,点导入,把本地文件上传就好了
这时候就完全迁移好啦!恭喜!
插播:使用时遇到的问题以及解决思路:
1. 原网站用户用原密码无法登录的问题,这时候可以通过改DB临时登录后改密码,目前还不清楚是什么加密算法,在网上查到的一条处理办法:
打开网站phpMyadmin,登录
从数据库修改:如果数据库表头没有改的话,就找到下面的一张表: typecho_users 找到想要改密码的账号,把相对应“password”字段的内容直接改成 e10adc3949ba59abbe56e057f20f883e 这样,登陆密码就改成“123456”了。
2. 忘记了服务器的mysql密码:
1.关闭mysql
service mysql stop
2.设置不检查权限重启mysql
这步我忘记了哈哈哈应该是重启命令加上skip-grant-table
3.用空密码方式使用root用户登录MySQL;
mysql -u root
4.修改密码
update user set Password =password(‘
新密码
‘) where User=’root’;
set password for ‘root’@’localhost’ = password (‘新密码
‘);
或者:
MySQL> update MySQL.user set password=PASSWORD(‘
新密码
‘) where User=’root’;
MySQL> flush privileges;
MySQL> quit
补充:2.设置不检查权限重启mysql的命令: service mysql start –skip-grant-table