标签 Blogbus 下的文章

将Blog迁移到DigitalOcean的VPS上

自从2012年初将Blog从Blogbus搬出来放到同事代理的虚拟主机上后,Blog运行一直很稳定,我也算 是比较满意。但同事的主机代理生意这两年来每况愈下,这促使他在前些时候做出了在今年年末放弃这门生意的决定,于是我又不得不为Blog另找落脚儿地了。

这次不想再单纯的买Wordpress虚拟主机了,一来功能有限,二来国外的入门级VPS价格已经与虚拟主机价格逐渐缩小,尤其是像 DigitalOcean这样的后起之秀,5$/mon的入门级配置VPS基本可以满足我的应用。于是DigitalOcean VPS就成为了我的购买目标。DigitalOcean这两年推广力度大,其Promo code的优惠有时可达20$以上,去年黑色星期五当天就给出了50$的优惠码。于是我期望着今天(2014黑色星期五)DigitalOcean的 50$优惠码能再现江湖。

但事与愿违,当时间走入美国当地时间星期五后,网上哪些所谓50$的Promo code依旧无法正常使用。无奈只能退而求次,使用"SHIPITFAST10"这个10$的优惠码,对于入门级VPS来说,10$也够试用两个月的了。

Digital Ocean VPS的注册和购买流程非常简单,按照官方提示一步一步做即可。这里要注意的是如果选择信用卡支付,务必一次填对信用卡信息,否则account就会短暂 无法使用,你需要fill out一个Form,提交给客服人工验证才能解除对你account的封锁。

接下来就是稍详细的说明Wordpress blog迁移到Digital Ocean VPS的步骤了,希望能对大家有所帮助。

一、备份WordPress Blog

网上关于迁移WordPress的方法有许多方案,之前在测试将WordPress迁移到Docker容器中时,我采用的是数据表导出导入+WordPress程序覆盖的方式,这次我依旧采用此方法。

现有的Blog用的是DirectAdmin的后台管理面板,支持全站备份,备份后的文件为:backup-Nov-27-2014-1.tar.gz。这个压缩包中有两个重要的组件(解压后你就可以看到):

    – backup/tonybai_db.sql
    – domains/tonybai.com/public_html/

   
我们要迁移的就是这两个组件。第一个.sql文件就是我们导出的数据库表,需要导入到新主机中的新库中。而第二个则是Wordpress安装后的文件集合,用于直接覆盖目标主机上对应的Wordpress文件包的。

二、创建Digital Ocean VPS Droplet

在填写完信用卡,利用优惠码充值账户成功后,就可以创建Droplet了。Droplet是DO的术语,理解成一个VPS实例即可。Droplet的创建 体验不错,DO已经准备好了各种VPS常用的应用组合以及OS供选择。我选择了5$/mon的Ubuntu 14.04 x64 + WordPress的组合,机房选择San Francisco 1。确认后,DO会开始创建Droplet操作,不到1分钟,Droplet就创建完毕了。如果不用ssh key,则VPS的root密码会发到你的注册邮箱中。有了root和密码,我们就可以通过"ssh root@YOUR_VPS_IP"访问你的VPS了。

首次后台登陆VPS,VPS会强制你修改root登陆密码。

三、初始安装WordPress

现在我们的VPS上已经安装好了WordPress运行所需要的所有软件了,包括apache2、mysql等。修改/etc/hosts,将自己的域名tonybai.com映射为VPS IP。

访问tonybai.com,WordPress的自安装程序启动,按照提示一步一步即可安装好Wordpress,这里带的Wordpress是4.0.0版本(注意:我们后续是要覆盖掉这个 WordPress的)。

安装好后,再访问tonybai.com就可以看到默认安装后的一篇example blog了。

现在我们进入tonybai.com/wp-admin页面,Apache弹出一个登陆框,在DO官方文档提到过,/wp-admin初始情况使用了 apache的.htaccess credential保护机制了,我们需要输入用户名密码才能进入wp-admin页面。这个用户名密码就在/root/WORDPRESS里。

四、导表

接下来,我们先将backup/tonybai_db.sql导入mysql数据库。

mysql的数据库访问密码在/root/.my.cnf中,用户名是root。

管理mysql我们更多使用phpmyadmin工具,于是通过apt-get install phpmyadmin -y安装一个。

为了通过Web页面访问到phpmyadmin,我们还需执行以下两个步骤:

 在/etc/apache2/apache2.conf尾部添加一行:
        Include /etc/phpmyadmin/apache.conf

 重启apache2:service apache2 restart

之后通过tonybai.com/phpmyadmin访问phpmyadmin工具。登录时使用mysql的root和密码即可。

进入phpmyadmin后,我们可以看到前面的Wordpress安装过程在mysql中建立了名为wordpress的数据库以及名为 wordpress的数据库用户。但我之前的blog使用的数据库用户和数据库并非wordpress,而是tonybai_user和tonybaidb,于是我们需要自己创建 tonybaidb数据库以及tonybai_user这个数据库账号。

创建tonybaidb时,注意使用utf8_general_ci字符集。

创建tonybai_user数据库账户时,注意其权限仅局限于localhost发起的访问以及tonybaidb这个数据库,其密码设置为原blog wp-config.php中的数据库密码。

由于phpmyadmin导入的文件不能超过2M,因此我们只能通过后台导表:

    mysql -u root -p
    mysql> use tonybai_db
    database changed
    mysql> source ./tonybai_db.sql

五、替换Wordpress安装文件

默认下wordpress安装到了/var/www下。我们需要将domains/tonybai.com/public_html替换掉/var/www目录:

cd /var
mv www www.bak

将domain/tonybai.com/public_html cp到/var/下,改名为www

chown -R www-data www
chgrp -R www-data www

剩下的就是访问tonybai.com即可。

是不是熟悉的页面和风格又展现在你眼前了!

六、创建SnapShot

DO提供两种备份方式Snapshot和Backups,其中Snapshot目前还是免费的,但backup服务是要付费的。Snapshot创建的前提是先stop这个Droplet。建议导入blog、访问正常后,马上建立一个Droplet的Snapshot。

七、其它

由于是入门型VPS,其内存仅有512M,并且默认情况下Ubuntu 14.04 VPS没有创建Swap,考虑到VPS的高可用性,我们还是需要自己动手创建一些swap空间,以供不时之需,创建步骤很简单,执行下面命令即可:

fallocate -l 512M /swapfile
mkswap /swapfile
swapon /swapfile

swapon -s  查看一下当前swap,可以看到:
Filename                                Type            Size    Used    Priority
/swapfile                               file            524284  0       -1

另外调试过程中发现访问tonybai.com/feed出现如下错误:
Forbidden:
    You don't have permission to access /feed/ on this server.

Google、Baidu许久才发现真正问题所在:我的旧Blog目录下有一个feed子目录,把这个目录删除即可。

Blog新起点 – 从BlogBus搬家到WordPress

 

今天着实是一个值得纪念的日子,因为我终于完成了从BlogBusWordPress的搬家工作,从此我的Blog将站在一个新的起点上。
 
自从2004年开博以来,我坚持了七年多,至今仍孜孜不倦,写博客已经成为我的生活中不可或缺的一部分,即使在微博等大行其道的今天,我亦然如此。作出搬家的决定显然是十分痛苦的,因为要抛弃已经建立起来的使用习惯以及Blog人气(包括搜索引擎索引、外部引用的等)是十分艰难的。但我还是决定搬家,更多是因为我的一个小小的梦想:拥有一个自己可以完全控制的独立域名的个人站点。
 
tonybai.com这个顶级域名是在2010年申请的,2010年末曾经尝试过一次搬家,但因技术原因最终没能实现。但鉴于BlogBus提供的服务愈发地不稳定,我又动了搬家的念头,而且有了上次失败的教训,这次我做好了充足的资料和技术准备。但即使如此,搬家过程依旧很辛苦,并且足足花了我一周多的业余时间,下面就来罗嗦一下搬家的过程。
 
一、准备工作
· 申请域名
2010年我在dreamhost申请的tonybai.com。
 
· 购买主机服务
目前我的主机由91host.net提供,最初是我的同事Puras免费提供的。
 
· 安装WordPress
由Puras帮忙在我的主机空间上安装了WordPress 3.2.1。
 
· 从BlogBus导出Blog数据
使用BlogBus后台管理提供的导出工具,将你的Blog导出,顺利地话你将得到一个类似backup-20120217204644.xml这样的文件。导出后用编辑工具打开瞧瞧,看看导出的是否完整。
 
· 将BlogBus数据文件转换为可导入WordPress的数据文件
这次搬家我直接使用了"爱写字"提供的转换服务。首先在"爱写字"申请一个博客,然后通过其导入工具将上面导出的BlogBus的数据文件导入到"爱写字"中,我的导入过程很顺利,没有报错,但遗憾的是我在BlogBus上回复朋友的评论无法导入。
 
· 修改Blog文章和链接
"爱写字"支持免费域名绑定。我先将tonybai.com绑定到"爱写字"上,然后直接在"爱写字"上修改博客数据,包括建立分类、修改每篇Blog的自定义地址、内容中的链接以及自定义标签,这是一个极其繁琐且痛苦的活儿,也是整个搬家过程中最最耗时耗力的环节,我足足花了一周多。
 
· 导出WordPress数据文件
通过WordPress后台的导出工具,将修改好的Blog数据导出,这里有一个缺陷:那就是你的友情链接数据无法导出。
 
二、WordPress站点配置及数据导入
· WordPress设置链接格式
进入WordPress控制面板,选择"设置"->"固定链接",设置链接形式为:"http://tonybai.com/2012/02/29/sample-post/",之后WordPress提示我需要修改".htaccess"文件。由于之前没有该文件,我按WordPress的提示,编辑好.htaccess文件后,上传到站点根目录下。
 
· WordPress媒体设置
进入WordPress控制面板,选择"设置"->"媒体",去除"以年—月目录形式组织上传内容"选项,统一使用默认的上传文件目录(需在wp-content下手工创建uploads目录)。
 
· 安装WordPress Importer插件
WordPress的导入功能是通过插件提供的,我们需要手动安装。在"安装插件"中搜索"WordPress Importer",得到结果后,点击"安装",WordPress就会自动进行插件安装。
 
· 导入WordPress数据文件
WordPress Importer安装完毕后,即可进行数据导入。导入前先用Ftp工具将uploads目录权限设置为777,然后选择本地要导入的文件,导入即可。WordPress Importer支持.gz结尾的压缩文件,它可以在上传后自动解压并导入数据。
 
· 配置WordPress Theme
我选择的是"Notepad Theme 1.3",这个比较简单,不多说了。
 
· 设置边栏布局
通过控制面板中的"外观"-> "小工具",我们可以通过拖拽的方式自定义边栏的布局,比如使用分类、日历、标签云等。
 
· 安装必要插件
目前我安装的必要插件有CKEditor for WordPress、Akismet、Copyrighted Post、Google XML Sitemaps、WP-RecentComments、BackUpWordPress、Google Analytics for WordPress等。
 
· 安装robots.txt
为了控制搜索引擎的行为,编写了一个robots.txt,放到了站点根目录下:
 
  User-agent: *
  Disallow: /wp-
  Disallow: /feed/
  Disallow: /?feed
  Disallow: /comments/feed
  Disallow: /trackback/
 
· 设置Feed
为了编译了解订阅情况,我增加了一个二级域名feed.tonybai.com用于统一Feed地址。我通过Feedsky提供的服务将feed.tonybai.com绑定到feedsky提供的一个Feed(http://feed.feedsky.com/bigwhite)上,而Feed源使用的是WordPress自带的Feed地址http://tonybai.com/feed。另外我修改了Notepad Theme 1.3的源码,将页眉的RSS图标对应的Feed地址统一也改为了http://feed.tonybai.com,希望各位朋友也使用这个地址订阅本博客。
  
三、WordPress站点备份
· 采用BackUpWordPress备份整个站点
BackUpWordPress不仅仅可以备份DB,还可以备份整个站点文件。备份前将wp-content目录的权限改为777,这样该插件就会在wp-content/backups下自动定期生成备份文件。如果需要,还可设置将备份的文件mail到指定邮箱中。
 
· 备份Blog文章数据
为了保险,我还会定期将最重要的Blog文章数据导出(xml格式)并压缩备份。
 
四、其他设置
 
· 统计服务
原BlogBus是自带统计服务的,搬到WordPress后我采用两个第三方的统计服务:Google AnalyticsStatCounter,其中Google Analytics可通过"Google Analytics for WordPress"进行设置和验证;StatCounter的安装则是通过在边栏的自定义Html代码区域添加完成的。
 
· 自定义Html代码
新浪微博秀、Google Reader分享等Widgets可通过边栏的自定义Html代码添加到站点上。
 
OK,至此搬家过程的大部分工作都算是结束了,后续还会从BlogBus迁移一些图片到WordPress上,但都是些小活儿了。另外这次虽然离开了BlogBus(博客大巴),但我仍要感激BlogBus这七年来为我提供的免费服务,也希望BlogBus能够坚持地走下去,并且能走得更好。
如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats