VMCloud见面礼——VMCloud博客迁移全记录

wpsF602.tmp

微信号 VMCloud

       大家好,为了避免在愚人节再公开本订阅号(其实为了避免被误会成是愚人节玩笑),所以选在今天,三月份的最后一天,VMCloud订阅号正式开张。如果说再说多的话也没办法去解释VMCloud订阅号的作用,那么就让我用实际行动来为各位了解关注本VMCloud订阅号的意义所在吧:P

wpsF613.tmp

———————————————————————————————————————————————————————————————————————————————————————————————————

正文部分

         记得俺在《追随你心——聊聊VMCloud》一文中讲到,在去年年底,VMCloud博客的带宽一度突破6G(从而导致的结果就是10月份、11月份的月底有两、三天是不可访问的状态,显示带宽超额),而原来的博客主机访问的带宽限制是6G(毕竟是个人博客,所以没有投入过多,购买的是wphostz初级型。虽然后来查出大多流量来源于百度的爬虫,不过至少也证明了存在带宽超额的风险),所以考虑再三决定迁移到Azure上面顺便也做做Demo测试,实践下如何迁移网站到Cloud WebSite上,不迁移不知道,一迁移千层浪。不多说,先送上这其中的曲折细节作为第一篇微文,也算是送给诸位关注本订阅号的见面礼。

迁移第一步:选择迁移方案

​预选方案A :使用一台A0或A1的Windows搭载PHP、MYSQL

预选方案 B:使用一台A2的Windows搭载PHP、MYSQL

预选方案C:使用一台A0的Linux搭载PHP、MYSQL

预选方案D:使用Web Service

最终选择了方案D,主要原因如下:

方案A放弃原因:A0、A1的Windows卡顿无法容忍,弃用,成本:A0 $13.40,A1 $55.06。

方案B  放弃原因:虽然A2的Windows可以满足所有的需求,但是价格!成本:$110.12(嗯,说多都是泪,强烈要求MVP额度提升到150+)

方案C放弃原因:虽然说性能(没有实际测试过,不知道是否能够支撑得起Blog日后的PV量)、成本都可以忍受,且实现NLB的方式及基于Web应用的扩展都需要人工操作存在诸多不便,且与方案D的性价比对比下,方案C就完败。成本:$13.40

方案D的优势:成本!成本!成本!成本仅为:$10.28(包括10GB带宽,当然带宽的价格十分便宜),且扩展十分方便!简直就是Azure服务中的小米!

迁移第二步:建立基础环境

选择博客的平台,我依然选择Wordpress,因为作为博客中的热门选手,它的优势在于架构简单易用,后台管理界面优好,具有大量的主题支撑,对于没有开发技能的朋友来说十分合适。

当然,最重要的是我原来的博客也是基于Wordpress的,而Wordpress提供了一个非常好的官方工具——导出导入(如下图)

wpsF614.tmp

迁移成本肯定比其他的平台的迁移要低很多,基于实现难度(实际上是笔者懒得去学迁移到其他平台,如果以后有机会再为各位分享吧:P)来说,我还是乖乖的选择原有平台吧!

关于建立基础环境,我也就不多说,Azure原生库里就提供Wordpress的模板可以直接创建(这对于新手级别的客户或者积懒成疾的病人来说是个多么福利的设定啊!)(如下图)

wpsF625.tmp

(由于本篇主要针对迁移进行介绍,故不对其他平台产品做详细分析,各位看官若有兴趣请自行百度:P)

迁移第三步:迁移数据(曲折点!)

关于迁移数据,说起来真的是一把鼻涕一把泪,长话短说,迁移数据涉及以下几个点:

1、 文章列表导入

难点:一颗星

整体耗时:约10 分钟

本来这个步骤的难点在四个星以上,但是有了Wordpress(再次声明,俺并没有在为Wordpress做广告)导出导入工具,这个步骤难度级别就直线下降,只需要在原Blog后台进行导出数据(依据博客大小生成一个XML文件,笔者原Blog约80篇博文,生成6M的XML文件),接着在新的Blog后台中导入即可

2、 图片迁移

难点:三颗星

整体耗时:约2 小时(视文件大小而言)

这个步骤本来可以通过在导入XML文件之后有个Import选项可以完成图片的迁移,但是笔者的图片文件多达500M,Import需要的时间太长,故,我直接将原博客的图片全部Download下来,然后再到新博客上利用ftp进行导入即可。

你可以通过以下途径来定位你原博客的位置(当然你也可以根据网站根目录路径来进行查找):

wpsF626.tmp

然后,你需要确定新博客的路径在哪里,做这一步的意义在于,你需要将你文章里面的图片路径进行替换为新博客的路径,不然你会发现导入数据之后你的博文图片全部都是打叉的(当然,你也可以根据你原来博客的设定来设置图片路径,但是那样的成本更高)。我的建议是这样的,你可以列一个表格:

旧Blog图片链接 新Blog图片链接
http://vmcloud.info/xxx/xxx1/xxx.jpg http://vmcloud.info/xxx/xxx.jpg

当你确定好了新旧博客的链接之后,你需要一个玩意儿:Navicat for Mysql,这玩意可以帮你连接到Azure所对应的DB上,并且可以做一些操作,这里的图片连接就是需要你去使用这个工具(当然你用其他的诸如PHPMyadmin也可以)做图片连接的替换,连接到WebSite对应的DB后,你需要找到wp_posts这张表,然后利用上面所列的表格,使用替换去将新博客中博文的图片链接进行统一替换:

wpsF636.tmpTips:关于如何找到你的DB

wpsF647.tmp

接着你就会跳转到(剩下你懂的):

wpsF648.tmp

3、 域名迁移

难点:两颗星

整体耗时:约2 分钟

在这一步上,笔者就栽了个跟头,而且还不是技术上在栽的,如果你要将原有的Azure WebSite的默认域名(xx.azurewebsites.net)更换成你的自定义域名,首先你需要在你的DNS Server设置A记录与CName记录,两者缺一不可(其实没必要为IP打马赛克,不过既然习惯性打上了就算啦!):

DNSpod设置参考:

wpsF659.tmp

Godaddy设置参考:

wpsF669.tmp

关于A记录所用到的IP,只需要在Azure WebSite后台看到点击管理域名即可看到:

wpsF67A.tmp

这里本来没啥问题,但是笔者闹了个笑话,也苦恼了我两天的时间,在设置A记录的时候我用的是下表的格式:

A记录 指向IP
* 23.XX.XX.XX

发现什么问题了吗?没有发现问题的我各种找原因找答案,得到的答案有

a) DNS Server有问题!可能有延迟,等够48小时再说吧!

b) Web WebSite不支持裸域名好像,你试试用www(事实上是支持)

c) 你的TLL设置有问题啊!不能用1 days!改成1 hours吧!

d) 额,反正我没这个问题。(T T)

反正答案五花八门,但是最终的答案是神马呢?

其实是这个*!没看清?是*

没错,由于笔者太久没动DNS Zone file,竟然在添加A记录时用的通配符用了星号,实际上A记录的通配符一般是以@来做通配的!设置之后不到5分钟就完成了解析!(哭笑不得)

4、 固有链接迁移:

难点:两颗星

整体耗时:约2 分钟

当你完成图片迁移、链接迁移、域名迁移之后,你可能发现一个问题,就是虽然利用使用域名打开首页是迁移后的域名,但是你点击链接会跳转到Azure WebSite的URL,这个的原因就是因为你没有做Wordpress的固有链接迁移,所谓固有链接如下图:

wpsF67B.tmp

如果你没有做更改,那么链接的格式应该是Azure WebSite的链接(如xx.azurewebsites.net),要对这里做更改,其实只需要一条命令,同样的使用Navicat for Mysql链接后使用以下SQL语句:

1. update wp_posts set guid = replace (guid, ‘http://old.domain.com’,’http://new.domain.com’);

2. update wp_posts set pinged = replace (pinged, ‘http://old.domain.com’,’http://new.domain.com’);

3. update wp_posts set post_content = replace (post_content, ‘http://old.domain.com’,’http://http://new.domain.com’);

4. update wp_options set option_value = replace (option_value, ‘http://old.domain.com’,’http://new.domain.com’);

做完之后,你就发现基本没有问题了。

5、 插件及小工具迁移:

难点:一颗星

整体耗时:约1分钟

这一步没啥好讲,实际上你把原博客空间上的wp-content/plugins文件夹中的内容全部拷贝到新的博客Azure Ftp中,然后刷新一下,你会回来转发的。

迁移最终步:测试及调试

最终,输入vmcloud.info:

wpsF68B.tmp

打开其中某个链接:

wpsF69C.tmp

来看下各个节点对于迁移后博客的访问速度(WebSite位置位于东亚):

wpsF69D.tmp
​ 借助本次机会,俺也将整体的博客风格做了更改,添加很多朋友反映的导航,请看博客右上角,不过还是推荐使用搜索,学习的成就感,总是源于你的发现嘛。由于原有VMCloud.info可能很多朋友不适应,为了方便记忆,启用了一个新的域名:VMCloud.com.cn,以后无论哪个域名都能都找到俺的博客。

附录:

Azure定价器:http://azure.microsoft.com/zh-cn/pricing/calculator/?scenario=appservice

网站节点测试:http://www.17ce.com

———————————————————————————————————————————————————————————————————————————————————————————————————

干货送完了,说回这个公众号:

当我第一次知道要我开订阅号我是拒绝的(其实也没人叫我开),因为我觉得你不能让我开我就开,第一我要试下,我又不想说,我开完一个订阅号后然后买了一堆僵尸粉来加订阅,然后朋友圈晒各种订阅数量最后还推送代购广告,什么很便宜!很实惠!很高端!这样真正订阅俺订阅号的人一定会骂我,根本就没说得那么好!证明这个订阅号根本没什么作用嘛上面都是假的!所以我说,要让我先试一下哈,后来经过对华来四、FanWindows、IT桔子、doNet跨平台、DotNet等各种订阅号的订阅验证,发现这些个订阅号的受众很精确嘛、内容对工作很有帮助嘛,真真的能实现担当“MVP条约”中“Share”的责任,那我关注了这么多天以来呢,受益匪浅,我还推荐给我周围的伙伴看“来来来,大家伙关注下盆盆的华来四、张诚兄的翻窗口、还有善友兄的技术订阅号呀,大家试试看!”那我跟我的订阅者讲说,虽然发布微文受众精确,要求质量要高,发布周期可能会很长,但是我不会刻意去加各种僵尸粉,推送各种无用的信息给大家,众多MVP前辈开完订阅号是这样,我开完订阅号也是这样!

wpsF6AE.tmp

所以,各位看官,请放心大胆的订阅吧!

———————————————————————————————————————————————————————————————————————————————————————————————————

PS:第一次写微文,排版神马的细节就请各位看官多担待啦!

关注方式

① 复制『微信号或ID』,在『添加朋友』中粘贴搜索号码关注。
② 点击微信右上角的『+』,会出现『添加朋友』,进入『查找公众号』,输入以下公众号的名字,即可找到。
③ 红字ID部分长按均可复制。