前言 博客迁移,从虚拟主机到外网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端口
最后域名bywalks.com解析到国外IP即可成功访问我所搭建的博客
收尾工作 如上,网站已基本搭建完毕,但还有些许问题需要优化
1:Mysql3306端口远程可连接
解决方式:关闭Mysql3306端口的远程连接
2:博客虽搭建好,但通过之前优化的文章链接postid.html无法访问文章
解决方式:/etc/httpd/conf/httpd.conf中的AllowOverride设置为All(注意,这里多个AllowOverride都需修改)、上传.htaccess文件