wordpress博客整站搬迁

国内服务器或虚拟空间建网站都要备案,最近审核比较严格,我做的几个站点都有点儿小问题,比如广告信息或者论坛链接之类的,但是这些站点里都没有,都是个人、企业和学校的网站。审核的效率比较低,又来回折腾了两三次,直接窝火,找人代付买了三个月Linode,试一下这款口碑很不错的美国VPS。你现在看到这篇文章所在的wordpress就搭建在新买的Linode上的,服务器在东京。速度还可以。

以上是废话,下面说一下博客整站搬迁的方法。以下方法假设使用的HTTP服务器软件是Apache、数据库系统是MySQL、服务器(虚拟空间)基于Linux系统。

博客搬迁分三种情况:

一、不换服务器(虚拟空间),换域名
1.1. 这种情况比较简单,在购买域名的服务商提供的DNS服务中,将新买的域名绑定到原服务器(虚拟主机)的ip地址。
1.2. 将博客使用的数据库导出(导出步骤见下面描述),修改sql文件中,把其中的所有旧的域名替换为新域名即可。
经过这两步,就可以通过新域名访问博客了(可能要等一会儿,因为DNS解析域名需要一段时间,一般两个小时之后就可以访问了)。

二、换服务器(虚拟空间,一般也就是换ip地址了),不换域名
其实不管是wordpress等博客系统,还是dedecms、phpcms等等内容管理系统,这种情况的搬迁就三点:1.将整个站点的文件打包并在新的服务器上解压并安装;2.将相应的数据库备份,并导入到新的服务器上的数据库系统中;3.把域名绑定到新的服务器ip地址上。

1.将旧服务器上的wordpress所在的安装目录打包压缩。
1.1.如果使用的是云服务器或VPS,可以通过ssh连接到服务器,并用命令:
$tar -cjf blog.tar.bz2 /opt/lampp/htdocs/blog/ //假设你的wordpress安装在/opt/lampp/htdocs/blog目录下
将博客所在目录打包压缩成bz2文件,也可以用zip压缩生成.zip压缩文件。一般的虚拟空间是支持.zip的,如果要搬到虚拟空间的话,建议压缩成.zip文件。
1.2. 如果使用的是虚拟空间,进入控制面板(一般为cPanel),选择博客所在目录,右键单击后选择压缩(compress)为.zip文件即可。
1.3. 在自己的电脑上(不是服务器上)使用ftp工具获取上一步压缩文件:
$ftp oldusername@oldhost //这是命令行命令,也可以使用filezilla等ftp软件通过图形界面下载。
ftp>get /opt/lampp/htdocs/blog.tar.bz2 //获取刚刚压缩的博客文件
1.4. 将下载下来的博客文件上传到要搬迁到的新服务器或虚拟空间上:
$ftp newuser@newhost //ftp登录到新服务器
ftp>put blog.tar.bz2 //上传博客文件
1.5. 如果要搬迁到新的云服务器或VPS(linux系统),那么可以省略第三步,用ssh登录新服务器后,在新服务器的命令行下执行下面命令:
$ftp olduser@oldhost //新服务器上使用ftp工具直接从旧服务器上下载文件,省略第三步中转了。
ftp>get /opt/lampp/htdocs/blog.tar.bz2
1.6. 如果是在服务器或VPS上,登录服务器,用命令行解压缩,并将其放到新服务器上的http服务器根目录下。假设HTTP服务器的根目录是/opt/lampp/htdocs,执行下面命令解压缩:
$tar -xf blog.tar.bz2 -C /opt/lampp/htdocs //命令行解压
1.7. 如果是在虚拟空间上,进入控制面板(cPanel),选择上传的压缩文件,右键单击,选择解压缩(extract)到指定的目录就可以了。
这样,旧服务器上的博客文件就全部转移到了新服务器上了。

2.将旧服务器上博客用到的数据库导出,稍作修改,导入到新服务器上的数据库系统中。
2.1. 如果是虚拟空间,那么进入cpanel控制面板,往下找MySQL数据库部分,点击进入phpmyadmin,选择博客用到的数据,然后选择导出,选择导出到blog.sql就可以了。
2.2. 如果是云服务器或VPS,那么登录到服务器,使用下面命令:
$mysqldump -u root -p blog_database > blog.sql
再输入root密码就将旧服务器上的博客所用的数据库导出到了blog.sql文件了。
2.3. 按照1中描述的下载博客文件那样下载这个blog.sql文件,然后上传到新服务器上。
2.4. 如果是搬迁到虚拟空间,进入控制面板(cPanel),进入phpmyadmin,建立一个新的数据库(建立的新数据库尽量和原来的数据库同名),为这个新数据库建立相应的管理员名和密码(管理员名和密码也尽量和原来的博客相同,这样新的博客就不用再更改配置文件了)点击导入,选择要导入的blog.sql这个文件,就可以了。
2.5. 如果搬迁到云服务器或VPS,那么远程登录服务器后,执行下面命令:
$mysql -u root -p
Password: your root password

mysql>create database blog //为博客建立一个新的数据库,名为blog,可以改为自己喜欢的其他名字
mysql>source /path/blog.sql //导入blog.sql这个文件,这个/path/代表blog.sql文件的绝对路径,比如/homg/user/,根据blog.sql所在的路径自己修改博客搬迁。

3. 稍加修改博客文件中的配置文件
3.1. 如果在第2部创建新数据库和数据库管理员和密码时,使用了新的名称或密码,那么搬迁之后的博客就要修改配置文件,使得搬迁后的博客可以连接到新的数据库。
3.2. 如果使用的是虚拟空间,那么进入博客所在目录,在线打开并编辑wp-config.php这个文件,找到并修改下面的内容:
/* 博客用到的新数据库名称,如果新数据库名称与原来的名称一样,可以不改 /
define(‘DB_NAME’, ‘database_name’);

/* MySQL数据库管理员名称,如果和之前的管理员名称一样,可以不改 /
define(‘DB_USER’, ‘user_name’);

/* MySQL数据库管理员密码,如果和之前一样,可以不改 /
define(‘DB_PASSWORD’, ‘password’);

/* MySQL数据库系统所在主机名,一般为localhost,也可以写服务器所用的ip地址,但建议不改变,使用localhost /
define(‘DB_HOST’, ‘localhost’);

/* 数据库使用的编码,建议使用utf8,如果做中文网站,也可以使用gbk /
define(‘DB_CHARSET’, ‘utf8’);

修改完这些内容之后,保存即可。
3.3. 如果使用服务器或VPS,远程登录服务器,使用vi或nano编辑器修改上述内容,保存并退出即可。

4. 将原域名绑定到新的ip地址上
4.1. 进入域名服务商提供的DNS服务,删除原来的域名与ip地址的A记录,添加新A记录,把原来的域名绑定到新的ip地址即可。比如原来域名为:www.xinspace.name,DNS中的关系为:
A记录: 域名 ip地址
xinspace.name 115.28.224.114 //这是原来的绑定关系,删除这条A记录
xinspace.name 106.187.90.237 //将原来的域名绑定到新的ip地址上,这个ip地址是新的服务器或虚拟空间提供的

CNAME记录: 域名 域名
www.xinspace.name xinspace.name //这条CNAME记录可以不改变

4.2. 绑定到新的ip地址之后,等一段时间(一般为2小时),就可以通过原来的域名访问搬迁之后的博客了。

三、既换服务器(虚拟主机或ip),又换域名
1.1. 这种情况就是上面两种情况综合起来就好了,先按照第一种情况把新域名绑定到新ip地址,再按照第二种情况把博客文件、数据库等安装到新服务器上,域名就可以不用改了,因为第一步已经改了域名了。