如何把wordpress博客搬到Google App Engine

Google App Engine(GAE)是google的互联网应用程序引擎服务。用户可以使用Google 提供的API开发自己的网站或互联网应用,而服务器、带宽等全部有Google的服务器集群来实现。GAE被开发者视为高速、免费的虚拟主机

目前的预览版本支持:
1、每个用户10个应用(application)。
2、每个应用500M存储空间和每月 500 万综合浏览量。

这些用来搭建一个小型的网站绰绰有余了。如果你的博客是wordpress,想搬到Google App Engine上,有有些困难,由于GAE目前支持python,而wordpress 是php程序。把wordpress的数据导入到一个可以在GAE运行的blog程序里,是迁移最实用的办法。

我把守望轩的博客就在GAE上做了一个镜像:http://watch-life.appspot.com/

下面我提供我尝试的方法:
http://www.watch-life.net/wordpress/wordpress-2-gae.html

1、注册GAE
链接:http://appengine.google.com/

注册必须是Gmail用户。

2、登录GAE,新建一个应用(application)
比如我新建的应用名为:watch-life

3、下载、安装App Engine SDK
链接:http://code.google.com/intl/zh-CN/appengine/downloads.html

比如我的安装目录为:D:\Program Files\Google\google_appengine

4、下载、安装python 2.5
链接:http://www.python.org/ftp/python/2.5.4/python-2.5.4.msi

为什么是2.5呢?因为目前GAE只支持2.5。

5、下载micolog 博客程序http://code.google.com/p/micolog/

目前的版本是0.5 。我只所以选择这个blog程序,是因为micolog 可以用导入wordpress的导出xml数据,兼容性不错,文章、分类都可以导入,而且支持永久链接。

6、安装micolog 博客程序。

1)把micolog 复制到GAE的安装目录(你可以对micolog目录名改名,比如我就改名为“watch-life”),修改app.yaml文件中的第一行,把“application:”后面的“mlog”,改成你在GAE上新建的应用名。比如,我就改成:application:watch-life

2)开始-运行-cmd,进入D:\Program Files\Google\google_appengine,输入命令:appcfg.py update watch-life/,然后根据提示输入gmail地址和密码,通过后会上传micolog 博客程序。这时你就可以访问你在GAE上的博客了,访问的地址为:http://应用名.appspot.com, 比如我的就是:http://watch-life.appspot.com

7、导出wordpress的xml数据。
登录到你的wordpress博客后台,在左侧导航栏选择:工具+导出,单击“下载导出文件”按钮即可。

8、在micolog 博客导入wordpress的xml数据。
1)、登录你刚刚在GAE上建好的博客程序,登录的用户名和密码和你Gmail的一样,因为应用的是google api 中用户服务,集成了Google 用户帐户。

2)在导航栏选择“设置+导入/导出”,选择导入xml文件(即从wordpress导出的xml数据文件),单击“导入”按钮即可。

在导入前要注意几点:

1、如果导入的xml文件如果很大的,是会超时导入失败的。我最开始导出的xml有1.8m,导入的时候就失败了,最开始以为是导入的程序有问题,把xml分成n多部分后分开导入,才成功了。

如何分割导出xml文件呢。xml文件里的结构是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" ...>
<channel>
.....
<wp:category>
</wp:category>
...
<wp:tag>
</wp:tag>
<item>
</item>
..
</channel>
</rss>

wp:category 节点表示分类
wp:tag 节点表示tag
item节点表示文章
其中的wp:tag节点可以全部删除,因为在导入的时候是被忽略的。

制作第一个xml,导入分类(在micolog 里叫目录)只保留wp:category 节点
,类似如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" ...>
<channel>.....
<wp:category>
</wp:category>
...
</channel>
</rss>

然后制作第二个xml,只保留一部分item节点(最好在50个item内,多了会导入失败),类似如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" ...>
<channel>.....
<item>
</item>
..
</channel>
</rss>

接下来制作第三个,方法类似,以此类推。

2、在wordpress的导出xml文件中有些item节点有些问题(估计是wordpress的bug),这些有问题的item节点居然用图片文件做节点,例如

<item>
<title>gohome.jpg</title>
..
</item>

如果存在这样的item节点,会导致导入中止,因此在导入中止的时候,需要检查是否存在这样的item节点。

3、永久链接(Permalink)不支持category参数,因此不能把永久链接设置为:%(category)s/%(postname)s.html,只用“%(year)s , %(month)s , %(day)s , %(postname)s , %(post_id)s”这几个参数。同时设置方式也和wordpress有些差别。

等把所有的xml都导入完后,整个迁移的工作就算完成了。

你有没有兴趣试试。:-)

有关链接:

1、Google App Engine:http://appengine.google.com/
2、micolog博客程序:http://code.google.com/p/micolog/downloads/list
3、python :http://www.python.org

更多文章见:守望轩[http://www.watch-life.net/]

posted on 2009-01-15 09:05  xjb  阅读(1462)  评论(0编辑  收藏  举报

导航