2005年7月22日星期五

从7LOG迁移到ZBLOG

  今天将我的博客从PHP+MYSQL的7LOG迁移到了ASP+ACCESS的ZBLOG系统上,其实并不是说PHP的7LOG不好,相反,其是一个非常出色的BLOG系统,并且和MT产生的URL非常接近,更主要的,PHP+MYSQL的搭配从各个方面都远远优于ASP+ACCESS,只可惜的是国内PHP空间太少,PHP的BLOG程序也少,7LOG已经相当长时间没有更新了,作者似乎蒸发了,国外的PHP空间速度的确很慢,而且还经常无法访问,国内的ASP空间速度是快,可惜找了很长时间,没有一个ASP的BLOG程序令人满意,而且其功能比起PHP的BLOG来讲实在差太多了,不过也没办法了,只好自己动手去改一个BLOG程序了(自己动手,丰衣足食)。

  我经过长时间的挑选,打算改Z-Blog这个程序,一来其也生成HTML静态文件,好改一些,二来其功能还算完整,模板也不少,且支持UTF-8,最主要的,其代码写的比较好维护。

  我主要改几个地方:

  1、将其生成的URL地址修改的和7LOG的一致,这个好修改,直接替换就可以了。

  2、给其增加静态目录列表文件和静态化首页,Z-Blog这个程序有一个奇怪的地方,就是只将文章页面静态化,其他的还全都是动态页面,不知道其作者脑子怎么想的,我就帮其将分类目录列表,日期目录列表和首页这三个地方静态化一下。这个新增还挺麻烦的,我花了大半天时间才写好相关的程序,生成的文件名也和7LOG的完全一致。

  3、将其内部一些代码进行修改,特别是和INCLUDE和CACHE相关的代码。

  4、最后,转换数据库。

  转换数据库的操作其实还是比较麻烦:首先安装MYSQL的ODBC驱动,然后将UTF-8版本的MYSQL表先转化为GB2312的MYSQL表,然后通过MS SQLSERVER的数据导入导出功能将MYSQL数据导出到MS SQLSERVER上(曾经尝试直接将MYSQL导出到ACCESS,结果失败),然后将数据从MS SQLSERVER导入到ACCESS中,然后在ACCESS中执行下面两条SQL语句进行数据表结果的转换(从7LOG结构转换到ZBLOG结构):

INSERT INTO blog_Article(log_ID, log_CateID, log_AuthorID,log_Level,log_Url,log_Title,log_Intro,log_Content,log_IP,log_PostTime,log_CommNums,log_ViewNums,log_TrackBackNums,log_Tag) select id,  sort,'1', '4', '', title,resume,content,'127.0.0.1',date,0,count,0,'' from blog_topic order by id

INSERT INTO blog_Comment(log_ID,comm_AuthorID,comm_Author,comm_Content,comm_Email,comm_HomePage,comm_PostTime ,comm_IP,comm_Agent) select topic_id,id,author,content,email,'',date,ip,'' from blog_comment2 order by id

  至此,数据库转换已经全部完成。有一点不理解就是ACCESS数据库怎么保存UTF-8的数据,因为写进去的数据并不是UTF-8,不知道ACCESS怎么处理的。

  现在已经全部转换完成了,就换了一个模板,样子就是现在这个样子,测试了一下,速度当然比国外的主机快好多了,界面看上去也算凑合,等以后看腻了就换模板吧。

  本BLOG和静态化补丁提供下载,下载地址请点这里