网站搬家到阿里云过程实录

2014年6月份的时候,我把博客从主机屋搬到了万网,当时在万网选的是轻云服务器,当时的搬家过程可阅读《博客搬家、zblog php升级过程实录》这篇文章。后来,由于一些其他的需要,上个月又在阿里云买了个ECS云服务器,这段时间在ECS上装了很多用来折腾的玩意,思来想去,感觉完全没必要同时有两个主机,又考虑到轻云服务器实在是限制太大了,不可以自己胡乱折腾,所以今天又把网站从万网搬到了阿里云ECS,这篇文章就是记录下这个搬家的过程。

1、备份网站数据

把现用的网站程序及数据文件完全备份下来,由于建站程序用的是ZBlog,可以直接从网上去下载,程序就没必要备份了,后面直接采用全新安装的形式安装下程序。所以,我就从现有网站备份了一些需要的文件,比如主题文件、upload上传文件、插件,以及其他的一些文件。备份好服务器上的数据以后,下面备份数据库中的数据,如下图1所示。

使用HeidiSQL导出数据脚本

图1:使用HeidiSQL导出数据脚本

网站用的是MySQL数据库,我用的MySQL管理工具是HeidiSQL,使用HeidiSQL登录进数据库以后,鼠标右键数据库名,在弹出菜单中选择“到出数据脚本”,出现如下图2所示的界面。

SQL导出选择设置

图2:SQL导出选择设置

如上图2所示,我没有勾选“数据库”和“表”的“创建”,只是选择了“数据”为“DELETE+INSERT(truncate existing data)”,“输出”默认为“Single .sql file”,然后自定义个“文件名”,然后点击“导出”。之所以,我没有勾选“数据库”和“表”,是因为我打算全新安装zblog,所以这些表它都会自动安装上去,对于数据库,我不想再用原来的数据库名了,打算建一个名为zbp的数据库,所以这里都不勾选。但是,如果你不知道怎么创建一个数据库的话,建议还是把“数据库”的“创建”勾上,这样导出的时候,导出文件中会有一个创建数据库的脚本,并且创建的是跟现有数据库的配置完全一样,自己再建数据库的时候,使用这个脚本可以避免出错,不过要注意改掉数据库名,比如我这里就改成了zbp,脚本如下:

CREATE DATABASE IF NOT EXISTS `zbp` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `zbp`;

好了,到这里,所以的备份结束了。

2、在云服务器上搭建PHP、MySQL建站环境

以前我自己搭建过PHP、MySQL、Apache的建站环境,需要手工去配置一些东西,有点麻烦,个人感觉没什么太大必要,可以直接下载一些非常完善的集成工具来一键安装,我推荐使用到是WAMP,可以去百度中搜索下载。

使用WAMP快速搭建PHP、MySQL、Apache建站环境

图3:使用WAMP快速搭建PHP、MySQL、Apache建站环境

如上图3,使用WAMP快速搭建了建站环境。启动下所有所有,在浏览器中输入http://localhost试试看,看看安装成功了没有。

3、安装网站程序并转移数据文件

安装好Wamp以后,使用HeidiSQL连接到数据库服务器,然后运行上面的那段创建数据库的代码创建一个zbp数据库,代码再复制过来下:

CREATE DATABASE IF NOT EXISTS `zbp` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `zbp`;

创建好zbp数据库以后,下面,到zblog官网下载最新的zbp程序,将程序解压缩到wamp安装目录的www下,然后打开浏览器,输入localhost进行安装,安装数据库选择前面建的zbp。补充下,wamp安装的时候,默认的mysql的登录密码是空,可以先改下密码(可以直接用wamp自带安装的phpmyadmin去修改下),这样一个全新的网站就安装好了。

下面,先将第一步中备份好的FTP上的数据文件复制到新的网站程序中作为新增或者覆盖,然后再开始数据库的还原,如下图4。

在查询编辑器中加载SQL文件导入备份数据

图4:在查询编辑器中加载SQL文件导入备份数据

如上图4,加载前面备份的SQL文件到查询编辑器中,加载完以后,运行下,数据就被插入到zbp数据库中,由于前面备份的数据包括delete和insert两种代码,所以不需要手工清除掉全新安装时往数据库中插入的数据,程序会自动清除。

下面我们再在浏览器中输入http://localhost,如果发现现在访问到的网站,其样式、内容都和原来的网站一样的时候,就说明我们搬家成功了,下面我们需要做的就是想办法把这个网站发布出去,让广域网中的人也可以访问到。

4、域名解析与绑定

在域名商那里解析下域名到现在这个服务器所在的IP,建议先别直接把原来在用的域名解析过来,比如,将yedward.net解析到该IP。仅仅只是解析了以后,然后在浏览器中输入yedward.net,可能会出现“403禁止访问”的错误提示。这个时候,找到apache服务器下的httpd.conf文件,路径如下图5所示。

找到httpd.conf文件

图5:找到httpd.conf文件

打开httpd.conf文件,找到如下图6所指的位置,默认的是Deny from all,把这里改成Allow from all,然后重启下wamp服务器,再在浏览器中输入域名访问下,比如yedward.net,这个时候就发现可以正常访问了,不会报403错误了。

设置Allow from all

图6:设置Allow from all

5、一些小问题的处理

通过上面几步的操作,其实搬家已经基本成功了,下面还有几个小地方需要设置下,比如当你直接访问一个文件目录的时候,你会发现返回了一个文件目录树,而不是403禁止访问;当你访问一个不存在的链接的时候,你会发现并没有返回你自定义的404页面。这两个地方需要改一下,方法如下。

404错误页面设置

图7:404错误页面设置

同样的,找到apache的httpd.conf文件,先来设置下404错误页面。如上图7所示,默认的ErrorDocument前面有个#号,把#号去掉表示启用404,然后输入下自己存放的404页面的位置即可。

设置Options Indexes

图8:设置Options Indexes

至于返回一个文件目录的问题,也是在httpd.conf中设置,如上图8所示,默认的Options Indexes后面是Indexes FollowSymLinks,把其中的Indexes去掉,只保留FollowSymLinks。然后重启wamp服务器,再次做一些测试,发现问题得到了解决。

以上就是我这次搬家的整个过程,放到ECS云服务器上跟放到虚拟主机上最大的不同就是你需要自己搭建各种环境,安装各种需要的软件,也需要做一些必要的设置,可能会稍微麻烦一点,有一点难度,不适合不太懂计算机的小伙伴。

2015年01月26日补充:

以上步骤基本上实现了搬家的过程,后面我又做了个301重定向,方法如下(注意:先将重定向涉及到的域名,都先解析到该网站下):

加载mod_rewrite.so模块

图9:加载mod_rewrite.so模块

找到apache服务器目录下的httpd.conf文件,用文本编辑器打开,找到LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的#,表示加载该模块,如果已经没有了#,表示已经开启,则这步不需要。

启用允许重写

图10:启用允许重写

同样实在httpd.conf文件中,找到AllowOverride,我这里默认的是AllowOverride None,修改成AllowOverride All,表示允许重写。做完了这几步操作以后,新建一个.htaccess文件(建的时候可能会报错没有写文件名,这种情况的时候,可以在压缩包中建立一个.txt文件,然后改名字为.htaccess即可),.htaccess文件的代码可以参考如下(下面的192.168.1.101是我乱写的,这里可以填上你主机的IP地址):

RewriteEngine on
RewriteCond %{http_host} ^www.yedward.net [NC]
RewriteRule ^(.*)$ http://yedward.net/$1 [R=301,L]
RewriteCond %{http_host} ^192.168.1.101 [NC]
RewriteRule ^(.*)$ http://yedward.net/$1 [R=301,L]

做了如上操作以后,将.htaccess文件放到网站服务器的根目录下面即可,重启apache服务器,301重定向成功。有关301的设置方法,可以参见博客中《三种主机(linux、windows、vps)301重定向跳转的实现方法》一文。

本文标题:网站搬家到阿里云过程实录

本文链接:http://yedward.net/?id=198

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章