一、备份博客网站文件和数据库;

二、把网站文件传到新空间,在新空间导入数据库;

三、修改网站配置和数据库;

四、检查转移结果。

WordPress博客搬家的几种情况:

1. 换主机不换域名

2. 换域名不换主机

3. 换域名也换主机

第一步:备份博客网站文件和数据库

1.在原来的空间中把博客文件下载备份。要是原来空间支持在线解压缩,建议打包下载,这样下载大小变小了,时间也会节省很多。(本人基本时有什么文章更新,就用FTP同步备份到本地的,大家最好也有这个习惯,不然突然而来的事故会让追悔莫及!)

2.备份数据库。可以通过phpadmin,帝国备份王,或者WP-DBManager这样的数据库备份插件,您可以选择您会的,熟悉的一种方式来做。(建议对于sql,gz,zip多种格式尽量都备份一下,你不知道下一个主机会支持哪种)

第二步:上传博客文件,导入数据库

1.把博客文件用FTP传到新空间,和下载一样,要是新空间支持在线解压缩,建议打包上传,这样时间节省了很多,流量也能节省一部分。(WordPress目录是public_html/下,所以只要把之前在public_html/目录下的文件,上传到新主机的public_html/下即可。)

2.导入数据库.PHPMyAdmin,帝国备份王都可以做到。(你需要在新主机内创建一个数据库,然后将你之前导出的数据库,导入即可)

如图:

第三步:修改网站配置和数据库(关键)

1.修改wp-config文件,最好不要用记事本来修改,用notepad++或者UltraEdit等编辑器,把里面的数据库信息改为您新空间的数据库信息,如下:

/** WordPress 数据库的名称 */
 define('DB_NAME', '你的新空间数据库名称');
 /** MySQL 数据库用户名 */
 define('DB_USER', '你的数据库用户名');
 /** MySQL 数据库密码 */
 define('DB_PASSWORD', '你的数据库登录密码');
 /** MySQL 主机 */
 define('DB_HOST', '你的数据库地址');
 将你新的主机空间的数据库名称,数据库用户名和密码填进去即可。注意一下,MySQL主机这一项默认是’localhost’,如果你的是Windows主机,不用修改,如果是Linux主机,可能需要填上数据库的地址。
 2. 进入新空间的phpadmin修改数据库:修改数据库表wp_options里的“siteurl”和“home”字段的值,改为你的新域名;
 3.把用的域名解析到空间后,登录你wp后台,修改你blog的地址为你新的域名。
 4.原来的文章里有链接或者图片是用以前域名的地址,所以还要修改那些地址。可以在phpadmin直接修改数据库或者velvet-blues-update-urls这个插件(推荐)。比如在phpadmin里,执行执行以下语句:
 UPDATE wp_options SET option_value = REPLACE(option_value,'旧地址','新地址');
 UPDATE wp_posts SET post_content = replace(post_content,'旧地址','新地址');
 UPDATE wp_posts SET post_excerpt= replace(post_excerpt,'旧地址','新地址');
 UPDATE wp_posts SET guid= replace(guid, '旧地址','新地址');
 第四步:检查转移结果,按照以上做了一般就完好的搬家成功了。
 http://jingyan.baidu.com/article/066074d68e9361c3c31cb04f.html
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 http://cnzhx.net/blog/transfer-domain-of-a-blog/
 
 更换域名更多时候是体力活儿,但是用法得当,可以省力不少。所以我打算写几篇文章,写写自己迁移域名(从blogkid.cn到blogkid.net)的全程。先写迁移wordpress。
 迁移wordpress主要涉及到3步:
1、数据备份
 如果服务器上装有phpmyadmin,可以直接导出一下。使用shell的朋友,可以用如下命令来备份数据:
dbuser -pdbpass -h  dbhost  dbname

把相应位置的dbuser, dbpass, dbhost和dbname替换为数据库用户名、密码、数据库服务器以及要备份的库名。最后得到的backup.sql.gz,就是一份完整备份。

插一句,我把备份的文件解压一看,居然有12M之巨。如果10%是有效内容的话,我这4年已经写了1.2M字节,相当于60万汉字了。

2、配置Web服务器

使用301跳转,而不要用默认的302(refer)。

配置Web服务器的目的是,将访问原有域名的请求引导到新的域名。301跳转是永久重定向,而302跳转是暂时重定向。前者对搜索引擎更为友好。

以我从blogkid.cn迁移到blogkid.net为例,在nginx中做如下配置:

server {
 listen   80;
 server_name  blogkid.cn blogkid.net www.blogkid.cn;
 rewrite ^/(.*) http://www.blogkid.net/$1 permanent;
 } server{
 listen  80;
 server_name  www.blogkid.net;
 ……
 }

第一段的配置是将blogkid.cn,blogkid.net以及www.blogkid.cn的请求都重定向到www.blogkid.net 下面。而第二段是用www.blogkid.net替换原有的www.blogkid.cn,其他部分不用改变。注意到在使用rewrite时,加入了 permanent关键字,可以使nginx发送301重定向。

如果使用apache,配置也类似,在rewrite时可加入参数R=301。

保存之后重启web服务器,使配置生效。

3、修改数据库

这也是对wordpress进行迁移的最后一步。需要注意,在完成第二步之后,wordpress会暂时无法打开,原因大家可以自己考虑一下。如果觉得不太好,把这一步提到前面也可以。或者可以先修改好配置文件,等第三步完成了再重启web服务器。

修改数据库主要修改3部分,语句可以在phpmyadmin或者mysql命令行中进行,整理自此处。

(1)修改站点地址、主页地址:

UPDATE wp_options SET option_value = replace(option_value, ‘http://olddomain.com’,’http://newdomain.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
 (2)修改文章中内部链接以及附件地址:
 UPDATE wp_posts SET post_content = replace(post_content,’http://olddomain.com’,’http://newdomain.com’);
 (3)更新文章永久链接:
 UPDATE wp_posts SET guid = replace(guid, ‘http://olddomain.com’,’http://newdomain.com’);

这三板斧一过,wordpress的迁移已经完成了。之后就从新域名打开网站,看看是否还有什么地方遗漏未能改掉。

BTW,如果原来域名有备案的话,可以在页面底部去掉。更换域名以后,就失效喽。

如果使用时出现了错误,请手动将代码中的单引号重新输入为英文半角单引号再试。

3、修改数据库,这些东西存在于2个地方,分别是:

(1)、评论作者地址

UPDATE wp_comments SET comment_author_url = replace(comment_author_url, ‘http://olddomain.com’, ‘http://newdomain.com’);
(2)、评论引用或Pingback地址
 UPDATE wp_comments SET comment_content = replace(comment_content, ‘http://olddomain.com’, ‘http://newdomain.com’);