前言

博客迁移,从虚拟主机到外网VPS,记录下迁移过程所遇的问题。

准备工作

1. 网站源码

2. 数据库备份文件

3. 国外VPS

4. 域名

开始搭建

首先VPS搭建Web服务器环境,我的博客为PHP环境,故需搭建Apache+PHP+Mysql组合环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//安装所需环境
yum install -y httpd php php-fpm mysql mysql-server php-mysql

//安装MariaDB(我的服务器环境为Cnetos7,Centos7已放弃Mysql,故用MariaDB替代Mysql,MariaDB是Mysql的分支)
yum install mariadb-server

//配置MariaDB

# 开启服务
ystemctl start mariadb

# 设置为开机自启动服务
systemctl enable mariadb

# 进行数据库的配置
mysql_secure_installation

//配置时出现各种选项

# 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Enter current password for root (enter for none):

# 设置密码,y
Set root password? [Y/n]

# 新密码
New password:

# 再次输入密码
Re-enter new password:

# 移除匿名用户, y
Remove anonymous users? [Y/n]

# 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Disallow root login remotely? [Y/n]

# 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Remove test database and access to it? [Y/n]

# 重新加载权限表,y。或者重启服务也许
Reload privilege tables now? [Y/n]

导入网站数据,由于导入.sql文件,故采用Navicat远程3306数据导入数据

1
2
3
4
5
6
7
//远程连接主机Mysql数据库,故需开启Mysql远程连接

#登录mysql
mysql -u root -p

#账号root密码root从任何主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;

Navicat远程连接数据库,导入.sql文件,发现无法远程,可能防火墙原因

添加防火墙规则

1
2
3
4
5
6
7
8
//打开防火墙配置文件
vi /etc/sysconfig/iptables

//增加下面一行(连通3306端口)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

//重启防火墙
service iptables restart

防火墙添加3306端口后可远程访问,故Navicat连接,导入原网站数据备份文件.sql

导入网站源码,通过FinalShell连接国外VPS,导入源码ZIP文件,unzip解压源码文件,配置wp-config.php,修改WordPress数据库的名称、MySQL数据库用户名、密码与Mysql数据库匹配

启动Apache服务,防火墙开启80端口

1
service httpd start

最后域名bywalks.com解析到国外IP即可成功访问我所搭建的博客

收尾工作

如上,网站已基本搭建完毕,但还有些许问题需要优化

1:Mysql3306端口远程可连接

解决方式:关闭Mysql3306端口的远程连接

2:博客虽搭建好,但通过之前优化的文章链接postid.html无法访问文章

解决方式:/etc/httpd/conf/httpd.conf中的AllowOverride设置为All(注意,这里多个AllowOverride都需修改)、上传.htaccess文件