Wordpress搬家实在是一件令人头疼的事,其难度比全新安装要高出好几个级别,即便是使用wordpress一年以上的老鸟也不一定能做好搬家这件看似简单的事情。我经历了6次搬家之后,才真正做到了无缝与无后遗症的搬家,在这里整理下步骤。
1. 使用cpanel或是其他面板中的phpMyAdmin导出wordpress的数据库,导出时选上“另存为文件”,其他一切选择默认选项就可以,导出文件通常为localhost.sql
2. 通过面板中的文件管理器,将wordpress所在目录压缩成zip文件,将此文件下载到本地。
3. 打开新主机的面板,创建数据库用户与数据库,记下数据库的名称,比如”abowow_wp”,并为此用户添加访问此数据库的权限。
4. 在本地找个趁手的文本编辑器打开localhost.sql,删掉非注释语句第二行
CREATE DATABASE `AAAAAA` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改第三行
USE `AAAAAA`;
将其中的AAAAAA改为第三步中的数据库名称,比如”abowow_wp”,如果旧主机的数据库名称与新主机的相同,则无需修改。
5. 确认新旧主机存放wordpress程序的根目录路径是否相同,比如老主机为”/home/sharkwii/public_html”,新主机是”/home/abowow/public_html/wordpress”,如果相同则跳过此步,不同的话,在打开localhost.sql的文档编辑器中搜索”public_html”,会找到一条类似于
(59, 0, ‘upload_path’, ‘/home/sharkwii/public_html/wp-content/uploads’, ‘yes’)
这样的语句,请将其中的路径替换。比如,按照上面,应替换为’/home/abowow/public_html/wordpress/wp-content/uploads’。(注意,这个第五条是人们经常忘记的一点,如果不修改的话,在新主机上通过wordpress后台上传图片等文件时就会报错。)如果你装了Google XML Sitemaps插件,继续搜”public_html”,将另外两条记录也进行替换。
6. 进入新主机面板中的phpMyAdmin,导入localhost.sql文件,注意将字符集选择为UTF-8。
7. 修改第二步下载下来的zip文件中的wp-config.php,将其中的数据库名称与用户替换为新的,如果没变化的话则无需修改。(注意,确保zip中的文件是修改后的。)
8. 将zip文件上传(通过FTP或是面板中的文件管理器都可以),然后在文件管理器中将其解压,调整好根目录所在的位置。
9. 文件管理器中通常是看不到.htaccess文件的,这时可以通过FTP登录旧主机,将.htaccess下载下来,查看有没有与文件路径相关的记录,修改为新的路径,具体操作与第五步类似,然后上传到新主机的wordpress安装目录。(这一点也是经常被忽略的。)
10. 做好以上的步骤,就可以去域名服务商修改DNS服务器或是A记录,指向新的主机。等待新的DNS记录生效。至此,整个搬家过程顺利完成。
给搬家频繁的博友的建议:
1. 尽量不要安装Statpress等需要占用很大数据库存储空间的插件,否则搬家的时候数据库备份导入等操作将变得佷耗时。
2. 如果图片等文件很多的话,不要将其放在主机上,而是放在flickr等第三方相册中,这样减少了搬家时下载上传的时间,也可以节省主机的日常访问流量开销。
P.S. 这里所说的无缝,其实是有点小缝的,从备份数据库到DNS记录生效的时间内(如果采用A记录,通常不到1个小时)的新数据会丢失,不过对于访问量不大的博客来说,不是问题,最多就是差一两条评论的事
。


沙发,你搬哪去了?
@feicun
把cnwave搬到我最早的host2ez永久免费主机上了,才发现那个免费的和我现在这个收费的在一个机房,ip都没差几个号,搞不好都在一台物理机器上!TNND!
无缝无后遗症~。。
是不是要加个无痛
免费主机和收费的在一个机房?哈哈,太巧了吧~
@A.shun
你太和谐了…
@huangjun
那个免费的算是对内测用户的特别照顾,品质和收费的完全一样。但是没想到两个代理用同一家主机。
其实 我想说的是……没那么复杂的。
@Showfom
我只是想尽量照顾到各种情况…
打酱油路过。。。
我就是因为怕搬家所以一直在忍受天天崩溃的服务器。
@大狗在线
大胆地搬吧~按我这个教程应该没问题
来申请该链接的……
@feicun
你把最关键的动词打错了…还好我超强纠错…
最重要的地方就是数据库的转移了
嗯,以后我肯定会遇到