scribble

守望的麦子

About Projects Tool Guestbook

02 Nov 2007
WordPress 搬家简单教程

WordPress 搬家其实挺简单,只需要两个步骤,一备份,二恢复。在这之上还得分两种情况,一种是换域名,一种是不换域名只换空间。

不换域名的话,搬家没有任何困难,只需要把目录下所有的文件拷贝到新空间的相应目录下,把数据库导入就完了,所以这里只讲换域名的情况。

下面是整个流程:

换域名意味着你原来 blog 上的帖子里如果使用了原目录结构的链接,所有链接在新的 Blog 里就会失效,当然没人想这样,所以就得在数据库里做一个改变,把旧链接换成新的。怎么改呢?

方法一:直接在 MySQL 后台用 replace 命令把新域名替换旧域名。这个方法要求会 MySQL 命令,我是菜鸟,不懂 MySQL 命令,期待牛人告知方法。

方法二:用 WordPress 自带的数据库备份插件把整个数据库备份到本地硬盘上,用 Notepad++ 之类的文本编辑器打开本地数据库,然后直接 Find & Replace 之。

然后,查找”DEFAULT CHARSET=latin1″ 用”DEFAULT CHARSET=utf8″替换。

好了,这下数据库修改好了,我们还需要把数据内容导入到新的数据库中。打开 phpMyAdmin,建立一个新的数据库,然后在 Operations -> Collation 里把编码改成 “utf8_general_ci”, 再用 Import 选项把修改好的数据库导入到新的下。

接下来,要把默认域名更新。打开 wp-options 这个表,按 Browse 浏览,然后把 siteurl 和 home 两个变量的值替换成新的域名。

下一步,打开 wp-config.php,把里面的参数更新(数据库名,用户,密码)。

然后你可以把你的原 Blog 下的所有文件拷贝到新域名的相应目录下了。拷贝完后打开你的新 Blog 页面,Ta-da!!! …………很可能会看到所有文章内容变了 ??? 号,别着急,我们还有一步关键的步骤。

打开 wp-includes/wp-db.php, 修改:

$this->dbh = @mysql_connect($dbhost,$dbuser,$dbpassword);
//加上下面这行
$this->query(“SET NAMES ‘utf8’” );

保存,退出,这下再打开应该没有问题了。

哦,如果你除了看到乱码,还看到“不能使用未经定义的函数”之类的错误的话,到 WordPress 后台把原来使用的插件激活就可以了。

最后还有一点,如果不想让 Blog 的访问产生断层的话,最好把新的域名事先激活,确认了域名已经 propagate 了整个互联网后再搬家,不然某些地方的读者可能暂时不能访问你的新地址。

参考文章:http://zhiqiang.org/blog/359.html

更新:根据Albert 的经验,为了避免各个版本 WP 数据库结构不一样,最好在搬家前确认两边的 WP 版本一致。

Til next time,
Jason at 00:00

scribble

About Projects Tool Guestbook