关于 | 归档 | 标签 | 博客圈 | 登录 |
  • 注册
  • 备战备荒

    2006年12月7日 下午 12:41 | 作者:nibby

    当blog再一次显示连接不到数据库的时候,我再一次被伤害了。
    Sic的blog已经长草,看来他也一心钻研Maxthon2去了。对于这个时常发发羊癫疯的LBS^2,显然属于有娘生没娘养的尴尬状态。
    没办法了,有时间把blog程序转了上Wordpress,简洁,迅速,不过是PHP还需要MySQL支持。
    走为上策,粮草先行,先转几个教学文章过来:
    ============================================
    [方法分享]LBS成功转换WordPress 2.0 作者:漫步水中的鱼
    原文地址:http://www.uniu5.com/blog/article.asp?id=320

    我觉得自己实在是很能折腾,这几天把基本上我知道的所有BLOG程序都试用了一遍。 -_-#
    之前就看别人用WordPress 很羡慕,那么多的实用插件,突发奇想自己试着把现在用的LBS转换为WordPress。
    在数据转换的过程中遇到过很多问题,多亏得到了zola,SkyLanD的热心帮助,在此表达感谢;同样感谢的还有提供LBS2WP工具的作者Sunu 以及相关参考日志的作者。
    运行WordPress2.0的环境:
    本地:Windows 2000 professional+Apache v2.2.0+IIS 5.0+PHP v4.4.2+MySQL v4.0.17&v5.0.18+phpMyAdmin 2.7.0+Zend Optimizer
    空间:FreeBSD+Apache+PHP 4.3x+MySQL4.0.22+phpMyAdmin 2.7.0
    至于为什么用了两个不同的MySQL版本之后会解释的。

    下面是LBS转换成为WordPress的过程:
    分别在MySQL v4.0.17&v5.0.18环境下测试成功,并成功将本地数据库转移到测试空间上。
    1◎首先上传LBS to WordPress的转换工具(在压缩包内) 点此下载,到LBS的数据库目录,修改第23行的数据库名为自己的数据库名。浏览这个转换文件所在的页面,分别导出分类/日志/评论的SQL脚本,记得要另存为utf-8编码。
    2◎安装WordPress(安装过程比较简单故略)后打开phpMyAdmin,把MySQL连接校对改为utf8_general_ci, 同时把phpmyadmin里所有有关WP的表和表中字段的collation (校勘)字符集由latin1_general_ci改为utf8_general_ci。(解决乱码问题的关键)



    3◎在phpMyAdmin中Import刚才导出的SQL文件,运气再加上人品不错的话应该你的LBS已经成功的转换成为WordPress了。是不是很简单啊?

    下面把我在转换过程中遇到的一些问题以及解决办法分享给大家:
    a.出现乱码的解决方法

    解决的关键就是统一编码为utf-8,这里引用zola的解决办法,希望对出现此问题的blogger有所启发
    [quote]MySQL的版本差异会引发Wordpress出现乱码. MySQL 4.0x 版本以下升级到了4.1x或者移动Wordpress到使用4.1x 的主机上将会遇到乱码问题。如果遇到此问题,首先,将Wordpress 的wp-includes的wp-db.php,在这句后面

    $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);

    加一句:

    $this->query(”SET NAMES ‘utf8′”);

    [/quote]
    这样就可以保证apache和MySQL之间传递的是UTF8编码,但是,加这条代码前请确认你的MYSQL数据库的版权低于4.1,不是4.1x就不要添加,不然会报错。 最后,清空原来的乱码数据,再输入任何含中文的数据后,在任何地方都看不到乱码了。
    b.导入LBS的SQL命令文本总是不能正确执行
    这里好像没什么好的解决办法,或许是人品问题吧。我也请教过zola,自己试验了差不多两个小时,得出一个很勉强的解决办法:
    将SQL命令分段复制到SQL的执行窗口,然后再执行SQL命令,直到把所有的指令都执行完,每次可以复制一小部分,一次复制太多,可能浏览器窗口会假死,直到命令复制成功才能提交执行命令。不要截断一个完整的SQL指令,不然会提示执行出错。

    c.分别使用MySQL v4.0.17&v5.0.18测试得出的结论
    在MySQL v4.0.17下的WordPress数据库里所有的中文都是乱码,在MySQL v5.0.18里WordPress数据库中中文显示正常。用Google搜索了一下找到了原因:
    [quote]MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。
    当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
    SET NAMES ‘utf8′;
    修改wp-includes/wp-db.php中这段代码:
    $this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
    //加上下面這行
    $this->query(”SET NAMES ‘utf8′”);[/quote]
    全新安装的WordPress:

    LBS已经彻底转为WordPress:

    如果你在转换过程中遇到问题,请在此留言,我一定尽力帮你解决。
    演示地址请见:
    http://friendsclub.be/phevoz/(确认已经无效-nibby)

    Added:菜鸟级LBS转换WordPress的方法请看这里:
    [续]LBS转换WordPress 2.0的菜鸟级方法

    参考日志:
    LBS转WordPress全攻略
    WordPress数据库恢复手记
    解决PHP存取MySQL 4.1乱码问题
    感谢以上日志的作者。

    PS:哪位有不错的PHP+MySQL的空间,推荐一下,最近我找了几个国内的都不怎么样,有怎么样又太贵了。-_-#

    没准你也会喜欢这些文章…

    评论(1 条评论)

    1. [lol] [lol] [lol] 看不懂,飘过

      [Reply]

    发表评论

    *必填

    *必填 (不会被公开)

    关闭
    E-mail It

    Copyright © Season11.com | Powered by WordPress | Theme by Blogool.org | Creative Commons | 鄂ICP备05000575号