Justin's Words

在服务器间迁移 wordpress

我尝试把博客从 SAE 迁到阿里云,过程有些小磕碰,不过还是成功了,记录下。

迁移数据库

SAE 数据库是 MySQL,由于我数据过于庞大,不能通过 phpMyAdmin 导出,所以我使用了 SAE 的 DeferredJob 功能进行数据库导出。

如果你使用的是自己的数据库导出就简单多了:

1
mysqldump -u USERNAME -p DATABASE_NAME > OUTPUT.sql

可以用 gzip 压缩下:

1
mysqldump -u USERNAME -p DATABASE_NAME | gzip > OUTPUT.sql.gz

导出后上传到目标服务器,我用的是 sftp

1
2
sftp username@host
put saeOutput.sql

然后在目标服务器 MySQL 导入,不过得先在 MySQL 命令界面创建个数据库来保存这份数据:

1
CREATE DATABASE wp;

最后导入数据,这是在 sh 界面:

1
mysql -u USERNAME -p TARGET_DATABASE_NAME < saeOutput.sql

迁移 wordpress 文件

把整个 wordpress 文件夹复制到目标服务器,在 wp-config.php 修改下数据库配置:

1
2
3
4
5
6
7
8
9
10
define('DB_NAME', MYSQL_DB);

/** MySQL database username */
define('DB_USER', MYSQL_USER);

/** MySQL database password */
define('DB_PASSWORD', MYSQL_PASS);

/** MySQL hostname */
define('DB_HOST', MYSQL_HOST_M.':'.MYSQL_PORT);

改 URL

需要改域名的话在当前主题的 functions.php 下添加以下代码:

1
2
update_option('siteurl','http://foo.bar');
update_option('home','http://foo.bar');

然后访问该 wordpress 目录在服务器的路径即可成功改域名,之后就可以把以上代码删掉了。

参考