WordPress Site Migration

本文讲述如何将基于WordPress创建的网站迁移到其他服务器。
后面假定旧WP站点域名是wp.old.com,站点文件在旧服务器/var/www/wp.old.com目录中;新WP站点域名是wp.new.com,站点文件准备放在新服务器/var/www/wp.new.com目录中,官方WP文件已解压在此目录中,Apache2/Nginx已发布wp.new.com站点。

备份旧服务器

备份数据库
MariaDB/MySQL数据库可以借助phpMyAdmin将WP数据库全部导出为wp_backup.sql文件。
SQLite数据库简单复制数据库文件即可。

备份上传的文件
/wp-content/uploads目录打包
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zcvf uplodas.tar.gz ./uploads/* # 将uplodas目录打包到uploads.tar.gz

备份主题
/wp-content/themes目录打包
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zcvf themes.tar.gz ./themes/* # 将themes目录打包到themes.tar.gz

备份插件
/wp-content/plugins目录打包
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zcvf plugins.tar.gz ./plugins/* # 将plugins目录打包到plugins.tar.gz

将打包文件上传到新服务器

(略)

在新服务器上恢复

恢复主题
themes.tar.gz释放到/wp-content/themes目录
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zxvf themes.tar.gz # 释放themes.tar.gz

恢复插件
plugins.tar.gz释放到/wp-content/plugins目录
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zxvf plugs.tar.gz # 释放plugins.tar.gz

恢复上传的文件
uploads.tar.gz释放到/wp-content/uploads目录
cd /var/www/wp.test.com/wp-content # 切换wp-content为当前目录
tar -zxvf uploads.tar.gz # 释放uploads.tar.gz

恢复数据库
MariaDB/MySQL数据库可以借助phpMyAdmin将wp_backup.sql文件导入。
SQLite数据库简单复制数据库文件即可。

设置新服务器MariaDB/MySQL数据库访问凭据
如新服务器数据库是MariaDB/MySQL,还需要在wp-config.php文件中保存数据库访问凭据。
cd /var/www/wp.new.com # 切换wp.new.com为当前目录
mv wp-config{-sample,}.php # 从wp-config-sample.php创建wp-config.php
vi wp-config.php # 编辑wp-config.php
参考以下填写数据库访问凭据:
define('DB_NAME', 'new_db'); # 新数据库名称
define('DB_USER', 'new_db_username'); # 新数据库账号
define('DB_PASSWORD', 'new_db_password'); # 新数据库密码
define('DB_HOST', 'localhost'); # 数据库服务器地址,通常都是localhost

修改域名
在新数据库中执行以下SQL查询,将WP站点首页地址+导航菜单中的首页地址、Posts(文章)中的图片链接地址改成新域名:
UPDATE wp_options SET option_value = replace (option_value, 'https://wp.old.com', 'https://wp.new.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace (post_content, 'https://wp.old.com', 'https://wp.new.com');
UPDATE wp_posts SET guid = replace (guid, 'https://wp.old.com', 'https://wp.new.com');


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *