WordPress博客搬家和更换域名的简单步骤

独立的Wordpress博客更换域名和搬家(更换网站空间)的方法及简明步骤记录如下,以最常见的网站服务器架构LAMP(Linux+Apache+MySQL+PHP)和Cpanel控制面板为例子,假设旧的域名为旧域名.com,新的域名为新域名.com:

1、新域名的绑定

先修改网站域名的DNS解析服务器使之指向空间服务商的域名服务器,然后登录空间的Cpanel控制面板,在Add-on Domains功能中把新域名绑定到新的网站空间(或者是原来的旧空间);

2、旧域名下网站的数据导出:

WordPress博客的网站可以分为网站文件的数据(包括各种插件和主题等等)和MySQL数据库的数据两个部分所以网站数据的备份也包括这两部分。

(1)在cpanel控制面板中通过文件管理器把旧的Wordpress博客的站点根目录下面的所有文件直接打包(利用Compress压缩功能)成Zip或者gz的压缩包,然后把压缩包下载到本地计算机,如果文件很大的情况也可以通过Shell命令(用SSH、Cronjob或者通过PHP Shell都可以)直接用Wget拉取到新的网站服务器上。

(2)MySQL数据库的导出:在导出旧数据库之前,最好通过Cpanel控制面板中“MySQL选项”菜单中的CheckDB功能来检查一下数据库有无错误,如果有错误可以直接RepairDB修复错误然后再导出(或者直接运行SQL命令CHECK和REPAIR也是一样的)。然后就可以通过MySQL自带的MySQLDump命令或者使用Cpanel面板的PHPMyAdmin导出数据库,比较了一下这两种方式导出的SQL数据文件,是可以兼容的,都可以通过新网站的PhpMyAdmin界面直接导入(最好使用gzip压缩格式,SQL文本格式数据的压缩比一般都超过7~8,可以减少很多上传的数据量),差别在于使用MySQLDump命令导出的数据库文件的SQL命令相对比较完整一点。(在PhpMyadmin导出数据库的高级选项里面也有选项可以调整)

还有一个问题就是发现一开始用phpMyAdmin导入数据库时会提示出现#1044错误:

MySQL 返回:
#1044 - Access denied for user 'XXXX'@' to database 'AAAA'

其实错误原因是因为旧数据库是直接在PhpMyAdmin的数据库管理主页界面导出的,包含了此用户可以访问的所有数据库,而不是仅仅将Wordpress使用的MySQL数据库导出,所以导出的SQL数据文件开始会加入一条创建新数据库的语句,在导入到新网站以后,由于新旧MySQL数据库管理系统的user用户名和password密码不同,所以会出现此错误。解决方法就是只需要单独导出Wordpress使用的数据库就可以了(就是在Wp-config文件中定义连接的数据库名)。

3、本地更新MySQL数据库数据(主要是域名的替换):

网上有不少方法是在PhpMyAdmin管理界面通过运行SQL UPDATE语句来把数据库中的旧网站域名替换成新网站的域名,这个方法稍显繁琐,要根据不同的数据表结构运行不同的SQL语句,其实由于导出的SQL数据库文件是明文保存的,比较简单方法的就是直接用支持Unicode编码的文本编辑器(比如NotePad++)在导出的SQL数据文件中直接执行替换功能,把SQL数据文件中所有的形如http://(www.)旧域名.com的字符串替换为http://(www.)新域名.com即可。

注意:如果新域名的长度和旧域名不是完全一样(比如从abc.com –》abcd.com就是长度不一样了,而从abc.com –》bca.com或者abcd.us就是长度一样,这样的话替换就不会有任何问题),那么这种替换方法可能会带来一些问题,导入新的数据库后会造成数据库存储的一些序列化的数据结构(比如主题用来保存设置的一些数组)出错,表现上会出现Wordpress博客首页显示空白等等错误。如果出现此问题解决的方法就是登录管理后台从新保存出错的所有主题/插件或者博客本身的设置,就是可能比较繁琐一点了。

4、数据导入新的网站空间(如果只是需要更换域名就无需此步骤):

先把修改过的SQL数据库文件通过PhpMyAdmin管理界面导入到新的网站空间。然后再通过FTP或者Cpanel的文件管理器把前面导出的Wordpress的网站文件Zip压缩包上传到新的空间正确的目录下再解压就可以了。还有一个步骤就是要修改Wordpress目录下的wp-config文件,把其中连接MySQL的数据库名还有用户和密码都修改为新的网站的数据,另外如果有必要,还可以从新生成新的Wordpress博客用于用户认证的唯一Salt和Key(通过Wordpress.org的在线服务https://api.wordpress.org/secret-key/1.1/salt/)。如果没有问题的话,这时访问新的域名就可以正常打开Wordpress博客的主页,而且管理后台的设置->常规中的“WordPress 地址(URL)”和“站点地址(URL)”两项设置也都应该自动替换成新的域名对应的URL了。

5、修改其他一些和域名有关的设置和检查一下有些插件能否正常工作。

如果网站空间使用了Cpanel控制面板,可能还需要更新一些和域名有关的设置,比如Cpanel中的新域名信箱的建立和邮件的自动转发等等,还有如果有网站自动备份的Cron Jobs脚本也需要对应修改备份的数据库和目录名,等等。

另外因为有些插件的设置不一定是在数据库中的(可能保存在配置文件中),所以更换域名以后还是都应该检查一下插件是否都能正常工作,如果需要的话还要手动修改一下才可以。

6、旧域名设置301重定向到新域名和提交搜索引擎域名的更改。

在旧域名的网站根目录下修改.htaccess文件,加入以下一段代码,把对旧域名的访问301重定向到新的域名下(包括根域名和www子域名),同时保留仍然可以登录旧域名的WP管理面板:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.旧域名\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^旧域名\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/wp-admin
RewriteCond %{REQUEST_URI} !^/wp-login.php
RewriteRule ^(.*)$ http://www.新域名.com/$1 [R=301,L]

同时还需要将原博客的.htaccess文件中以下一段Wordpress加入的代码删除(只有开启了固定链接功能才有的):

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

301重定向设置好以后,还可以使用Google的网站管理员工具把网站域名的更改提交搜索引擎,至此Wordpress博客的域名迁移就完成了。

发表回复

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