迁站之前先配置好新服务器的环境,环境搭建教程可以参考阅读《阿里云ECS服务器LNMP环境搭建(日志)》。
一、迁站操作步骤
以下A代表旧服务器,B代表新服务器;
1、备份网站数据
备份旧服务器网站数据,压缩站点文件,SSH进入上一级目录,执行以下命令:
zip -r 文件名.zip 目录
例如:zip -r huaiyinjie.zip www.huaiyinjie.com
其中:文件名可以任意填写,目录即为需要备份的目录(如www.huaiyinjie.com)。
2、备份数据库
备份旧服务器网站数据库,执行命令(导出数据和表结构):
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
或
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
- mysqldump -uroot -p abc_com > /data/wwwroot/huaiyinjie.sql
回车后提示输入用户密码,导出成功,文件在/data/wwwroot/目录下,huaiyinjie.sql是导出之后的文件的名字。
注意:如果只导出表结构,在-p后面加上-d即可。
3、下载网站数据和数据库文件
下载备份的网站数据和数据库压缩文件到新服务器,进入到网站目录 cd /data/wwwroot 执行命令从A服务器下载到B服务器,执行命令:
wget https://www.huaiyinjie.com/huaiyinjie.zip
(资源地址)
wget https://www.huaiyinjie.com/huaiyinjie.sql
(资源地址)
此指令需要在B(新)服务器上执行。
4、导入数据库到新服务器
在新B服务器phpMyAdmin管理面板中新建同数据库名的数据库,导入备份的数据库到新服务器,执行下面命令直接导入:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
- # mysql -uroot -ppassword XXX < /data/wwwroot/huaiyinjie.sql
上面这行命令会使用 root 身份,把当前目录下的 huaiyinjiie.sql 恢复到 XXX 这个数据库里面。
扩展阅读:如果导入的数据库超过500MB或更大,可以参考这个方法《如何导入导出超1G大小的MySQL数据库(日志)》
5、更改域名解析
暂停A服务器上的域名解析,添加到B服务器上新的域名解析。添加完成后ping测试一下是否解析成功,如果没有解析成功,需要等待一会,不然SSL证书会添加失败。
6、添加虚拟主机
输入cd oneinstack
回车,再输入./vhost.sh
7、添加SSL证书、添加域名、网站根目录、域名强制跳转、https强制跳转;
注意:添加新站点域名时,需添加两个,一个是带www和不带www的域名。
8、防盗链、伪静态、伪静态规则、访问日志设置;
9、虚拟主机创建完成;
10、解压备份的网站数据
进入要解压文件所在的目录,然后执行解压命令:unzip huaiyinjie.zip
11、调整网站目录结构
通过FTP工具进入网站目录,将源码手动移到根目录位置。
12、赋予网站目录权限
cd .. 返回网站根目录,然后执行命令:
chgrp -R www 网站根目录
chown -R www 网站根目录
chmod -R 777 网站根目录
下面的权限是使用WP Super Cache插件,
提示“警告! /data/wwwroot/www.huaiyinjie.com/wp-content 可被写入!”,所以要配置755权限。
chmod 755 /data/wwwroot/www.huaiyinjie.com/wp-content/
13、修改wp-config.php数据
打开A站wordpress根目录下wp-config.php文件,找到以下内容:
define('DB_NAME', 'AAA');
AAA为A站的MySQL数据库名define('DB_USER', 'BBB');
BBB为A站的数据库用户名define('DB_PASSWORD', 'CCC');
CCC为A站的数据库密码define('DB_HOST', 'DDD');
DDD为A站的数据库主机名,一般为localhost,多数情况下不用改
打开B站目录下对应的wp-config.php文件。
将以上AAA,BBB,CCC,DDD修改成b站数据库的记录,然后上传到B站覆盖旧文件。
14、重启 nginx
命令:service nginx restart
二、迁站完成后续操作
1、修改服务器IP地址默认跳转
删除或重命名/data/wwwroot/default目录下index.html文件即可,或者修改。
2、清理迁移成功的网站数据
注意:操作前先备份数据库、网站数据、备份服务器快照!!然后让网站在新服务器上运行一周没问题后再清理网站数据。
- 包括删除网站数据:通过FTP直接删除网站根目录文件,如:www.huaiyinjie.com
- 删除数据库:通过phpmyadmin删除数据库;
- 删除虚拟主机:SHH执行命令
cd oneinstack
./vhost.sh --del
./vhost.sh del
3、重启PHP、数据库
查看PHP版本命令:php -v
重启PHP命令:service php-fpm restart
启动PHP命令:service php-fpm start
重启MySQL命令:service mysqld restart
4、禁用数据库日志
LNMP默认没有关闭数据库日志功能,时间久了会在/data/mysql/目录或/data/mariadb/目录下生成大量的mysql-bin.0000*
类型的日志文件,非常占用空间。禁用方法可以阅读《LNMP禁用mysql/mariadb数据库(日志)》