10
2010
12

博客从zblog平台平滑迁移到wordpress的方法

目前最流行的独立博客程序是WordPress和Zblog,一个是php程序,一个是asp程序,数据库方面一个采用的是mysql一个是access,优缺点这里不说了,各有所长,我目前的博客是用的Zblog程序,考虑想转换的wordpress平台上。

需要考虑的几个问题是数据是否能完整迁移,博客文章数量少还好,如果数量多的话重新在wordpress上写一遍是非常恐怖的事情,因此数据库顺利的导出导入是非常重要的,这样可以减少非常多的工作量。

另外博客在迁移之后网站结构是否能保持与原来的一致,这对搜索引擎的优化非常重要,例如我的博客有70%左右的访客是通过搜索引擎来的,如果网站结构发生了变化,网页需要重新收录,排名也会发生很大的变化。

基于对上面两点的考虑我在网上查阅了许多文章,并且在本地进行了测试,最后顺利完成了zblog到wordpress平滑迁移的测试。下面总结一下迁移过程。

Zblog数据库的导出

数据库的导出及导入用的是月光博客编写的插件movabletype,月光网站上提供的movabletype插件版本已经过时,在zblog 1.8上不能正常运行,目前最新版是1.4的版本,我用的就是这个。movabletype运行很简单,将该插件解压缩之后下传Zblog的plugin目录下,然后插件管理就行了,运行过程有可能出错,可能会提示在某asp找不到某行,不要紧,我们将指向这一行的那一段代码删除就行了。

使用webmin管理linux

在MT格式导出程序中选择你要导出的文章id及内容,建议是每次导出不要超过100条,不然速度会很慢,另外有些空间上传限制了文件大小,可以分次进行导出。导出日志后需要将文本文件默认保存为UTF-8的格式,请不要修改为其他编码,否则导入MT里会乱码。

成功之后就会提示下载一个movabletype.asp文件,这个就是数据库,这样数据库也准备好了。

 数据库的导入WordPress

接下来就是在地安装Wordpress了,安装前得先给wp创建一个数据库,我这里起的名字是wordpress,这个名字正式安装wp时要用上,所以不要起什么特别的名字,类型是utf8_general_ci。

然后就要导入数据,需要wordpress的Movable Type and TypePad Importer插件支持,在管理——导入——Movable Type和Typepad。将从Zblog导出的movabletype.asp导进去,整个转移过程就完成了。导入完成之后就可以在日志中看到导入的日志了

使用webmin管理linux

文章分类还需要修改一下,导入后名称和缩略名都是一样的中文格式,将其缩略名修改为英文格式,在后面的urlrewrite中需要用的到。

如果不想要URL一致, 也就两三分钟的事, 但如果你要保持URL不变, 那还是有不少工作需要做的。

接下来的问题就是怎样保持与原来网站结构一致,首先要求服务器支持url rewrite(本地是不支持的),然后像我这样只要改掉一个地方就行了:设置——永久链接——自定义——/%category%/%postname%.html,这是因为我以前在Zblog里都是自定义文章名字的,所以这次简单一改永久链接就行。

缩略名的导入

在文章属性中缩略名也是和没有导入进来,用的是中文的标题名称,这个缩略名用在永久链接中是不行的,因此需要将zblog的文章别名导入到wordpress中。

用office打开ZB的数据库文件,修改blog_Article表。删除blog_Article表中字段,只保留log_ID、log_Url及log_PostTime,要和上面创建的表中字段对应。接着用月光的db2mysql生成blog_Article表的MYSQL语句。

DB2MYSQL是一个可以自动将ACCESS数据库文件转化为对应的SQL代码的软件。可广泛应用于ACCESS数据库转换为MYSQL或其他类型的SQL数据库的软件。

DB2MYSQL能够实现可视化操作数据库,转换界面非常简单明了,可轻松实现ACCESS数据库转换为MYSQL数据库。如果想要将SQL SERVER的数据库转换到MYSQL,也可以使用这个软件,具体操作是先使用SQL SERVER的“导入和导出数据”将SQL SERVER数据导出到ACCESS文件,然后再将ACCESS文件导出为MYSQL语句。

使用webmin管理linux

运行转换功能后,系统会生成两个输出,一个是在屏幕界面上将转换后的SQL语句输出,另外还会在输出目录下自动生成一个后缀为.SQL的文本文件,里面会记录生成的SQL语句。

在wordpress数据库中使用SQL语句创建一张表。

CREATE TABLE blog_Article (
log_ID int NOT NULL ,
log_Url varchar (255) NULL,
log_PostTime datetime NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

接下来将db2mysql生成的blog_Article表的MYSQL语句放到phpmyadmin中执行。

执行完毕后再依次执行下面两行代码。

update wp_posts,blog_Article set wp_posts.post_name=blog_Article.log_Url where wp_posts.post_date=blog_Article.log_PostTime

接下来继续执行如下语句:

update wp_posts,blog_article set wp_posts.post_name=blog_Article.log_ID where wp_posts.post_date=blog_Article.log_PostTime and wp_posts.post_name=‘’

到此博客的数据完成顺利迁移。

Zblog迁移到wordpress需要注意的问题

图片地址问题

由于是在本地进行数据库迁移的,图片地址迁移之后有的会变成测试机的地址,因此需要对数据库中的地址进行批量替换动作,代码如下:

update wp_posts set post_content=replace(`post_content`,'192.168.0.201','www.liusuping.com')

zblog转wordpress网站降权

即使你费了很大的精力修改了所有的文章地址,保证搜索引擎用户不丢失,zblog转wordpress带来的搜索引擎降权也是不可避免的,换程序+换主题,必定让你的pr值和收录搜到影响,尤其是百度,饶不了你的。

zblog转wordpress后续工作

你需要修改feed地址,最好能提前通知你的订阅用户,你的订阅地址发生变化,如果你是用feedsky烧录的feed,那你的feed地址在feedsky修改,就可以保证这一点。

多图版博客从zblog平台平滑迁移到wordpress的方法

« 上一篇下一篇 »

相关文章:

评论列表:

1.PArK  2011-2-8 16:34:01 回复该留言
主要問題是url修復,太複雜,不轉了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。