WordPress转移记

By | 2007 年 01 月 22 日

将一个Wordpress架构的站从国外转到了国内,本以为会毫无悬念,没想到却颇费周折,记下,以便以后参考。

1. 无法导入Mysql数据库
在Myphpadmin中试图将备份的Mysql数据库导入新站的时候,老是提示Error。无论是尝试使用Wordpress后台所备份出的数据还是站点Cpanel备份出的数据,都无法解决这个问题。错误代号#1061,大致提示的意思是Mysql从高版本迁至低版本所致。对比原主机的Mysql版本和现主机版本,果然是从5.0.X降至了4.0.X。后来在Myphpadmin的导出功能中,选择版本为4.0.x备份数据,再导入,果然很顺畅的完成了导入过程。

2. 页面乱码
关于Wordpress数据库导入后页面乱码的问题,很多前辈已经深入探讨过了,这里我也只是简单的转述一下:
a. PhpMyAdmin中导入数据库后记得将数据库类型转换为utf8_general_ci(一般而言,Wordpress的数据库都采用UTF-8,当然也有特立独行者不喜之)
b. 找到wp-includes下的wp-db.php文件,找到$this->select($dbname);,并在其前面添加一行,变成:

$this->query("SET NAMES 'utf8'");
$this->select($dbname);

注:修改WP-DB.php文件时建议使用WP自带的文件编辑器(管理-〉文件),这可避免因文件编码不同所引起的不必要的意外
另,以前尝试使用桑志林给出的方法时总是失败,所以,如果你使用我上面给出的方法亦无法解决乱码问题,建议用用他给出的方法:

在 wp-db.php 加入
$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面這行
$this->query(”SET NAMES ‘utf8′”);

3. 无法登陆WP后台
这个问题我却是第一次碰到,其先以为自己程序设置有问题,但这显然是不可能的。所幸的是,自己电脑上Admin登陆的Cookie还在,因此每个文章后面的“编辑”选项依然存在。借助于它,轻松进入后台。突然想起之前看到的一个Kill Incoming Links插件,用以解决因为GFW阻止Technorati而导致的WP Dashboard失败问题。所以,修改Wp-admin下的Index.php文件或使用该插件都可以顺利解决这个问题。这也算是主机从国外迁回国内所带来的最大的一点不便。

4. RSS订阅的Feed乱码
本以为一切问题都顺利解决了,不想察看Bloglines时却发现Feed到的文章内容都变成了”??”。稍微搜索了一下,MetalDudu@Blog提及,因为“wp-rss2.php包含的wp-blog-header.php出现多余空行”会导致这种现象的产生,回想自己顺便升级WP到2.0.7的时候,并没有覆盖原服务器上的所有文件,而是采用了自己习惯使用的文件存在习惯(小于续传,等于跳过,大于覆盖)。重新上传文件后,该问题解决。尽管之前以为是由于Rss2文件的问题,但后来的事实证明,这并不是症结:重新上传该文件后,乱码确实消失,但修改文档后,RSS还是会出现无数乱码。修改wp-db.php文件添加SET NAMES 'utf8'这条命令,不想却在首页页头出现一条“WordPress database error: [Unknown system variable 'NAMES']”的错误提示,非常影响美观,但此时的RSS显示一切正常。因此,基本可以推断是WP插件的问题。后台禁用了Adhesive后,一切回归自然,估计是由于Adhesive与MySql 4.0.x或WP 2.0.7/2.1等之间的冲突导致的。娘的,还是没搞定,睡去了!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注