昨天已经成功把公网上的WordPress所有内容备份,导入到家庭服务器上了。
公网上的内容依旧保持现有的状态,直到2023年的到期,可能我不会再续费了。至于公网上的内容,可能不一定去更新。因为我感觉很多的内容其实不想出现在公众视线,大部分还是自己折腾的自己看的内容,也没有必要出现在公众的视线。
因此,把所有的内容搬回来,安心在自家的家庭服务器上面折腾。
经过几次的WordPress搬家,我总结了一些WordPress搬家更换域名的经验记录下来,以便日后需要时作为参考。
一、WordPress搬家前需要做的事情
1、备份数据库
备份数据库方法:
在 CentOS7 上用的是 MySQL8 备份数据库的老方法是
/opt/rh/rh-mysql80/root/usr/bin/mysqldump -h 127.0.0.1 -R --opt wordpress | gzip > /mysql_backup/wordpress_202110071820.sql.gz
在 Debian10 上用的是 MariaDB10.3 备份数据库非常的简单,因为本地系统登陆数据库是 Unix Socket ,免密登录。
mysqldump wordpress | gzip > /mariadb_backup/wordpress_202110071820.sql.gz;
以前备份的老套路,对于 Debian 来说都是过时的方法。
2、备份网站文件
我们仅需备份 wp-content 这个目录即可
这是将 wp-content 这个目录打包压缩的方法:
tar -czPf /wpbackup/wpcontent_202110071928.tar.gz /www/html/wp-content
或者不用打包压缩,直接备份目录也可以。
二、WordPress搬家与更换域名
1、确定需要更改的域名
明确我们需要更改的域名以及端口号,因为我这里是从阿里云公网上的WordPress内容迁移到自己家庭服务器上面,所以使用了端口号。
WordPress原使用的域名为 https://www.sgtfz.cn
WordPress现使用的域名为 https://sgtfz.cn
2、配置网站数据
首先停止服务器 apache 或 nginx 服务。
下载最新版本 WordPress ,解压,上传网站数据,修改 wp-config.php ,最后修改网站目录权限。
# 进入网站目录 cd /www/html/ # 下载最新版的wordpress wget https://cn.wordpress.org/latest-zh_CN.tar.gz # 生成sha1,校对官方sha1 sha1sum latest.tar.gz > latest.tar.gz.sha1sum # 解压wordpress tar -xzvf latest.tar.gz # 删除官方wp-content目录 rm -R /www/html/wordpress/wp-content # 上传我们备份的wp-content目录文件,使用WinSCP登录普通用户上传,然后复制到指定位置。 # 移动数据到指定目录 mv /home/sgtfz/wp-content /www/html/wordpress/wp-content # 修改 wp-config.php,先确定数据库名,用户名,密码。并填上。稍后再登录数据库创建数据库名,用户名,密码。 define( 'DB_NAME', '数据库名' ); /** MySQL database username */ define( 'DB_USER', '数据库用户名' ); /** MySQL database password */ define( 'DB_PASSWORD', '数据库用户密码' ); # 修改网站目录及相关文件拥有者权限 # 修改网站目录拥有者为www-data chown -R www-data:www-data /www/html/wordpress # 修改wp-config.php文件拥有者为root chown root:root /www/html/wordpress/wp-config.php
3、配置数据库
创建新的WordPress数据库,用户,密码。然后导入数据库备份文件,修改数据库。
# 登录到 MariaDB # 创建新的WordPress数据库及用户 create database wordpress; # 查看已创建的数据库 show databases; # 创建数据库用户,密码 create user '数据库用户名'@'localhost' identified by '数据库用户密码'; # 查看数据库的用户们 select host,user from mysql.user; # 授权用户使用数据库 grant all on wordpress.* to '数据库用户名'@'localhost'; # 刷新权限 flush privileges; # 切换到wordpress数据库 use wordpress; # 用WinSCP登录普通用户,上传数据库备份文件到服务器 # 导入数据库备份文件 source /home/sgtfz/mysql_202110072026.sql; # 操作数据库,修改原域名 WordPress地址(URL),站点地址(URL)为现使用的域名 # 列出WordPress原使用的域名 select * from wp_options limit 2; MariaDB [wordpress]> select * from wp_options limit 2; +-----------+-------------+----------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+----------------------+----------+ | 1 | siteurl | https://www.sgtfz.cn | yes | | 2 | home | https://www.sgtfz.cn | yes | +-----------+-------------+----------------------+----------+ 2 rows in set (0.000 sec) # 修改为现需使用的域名 update wp_options set option_value = 'https://sgtfz.cn' WHERE option_name='siteurl'; update wp_options set option_value = 'https://sgtfz.cn' WHERE option_name='home'; # 再次列出WordPress使用的域名,验证修改完成。 MariaDB [wordpress]> select * from wp_options limit 2; +-----------+-------------+------------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+------------------------+----------+ | 1 | siteurl | https://sgtfz.cn | yes | | 2 | home | https://sgtfz.cn | yes | +-----------+-------------+------------------------+----------+ 2 rows in set (0.001 sec) # 至此,我们实际上可以访问网站了,但还得继续修改数据库的 post_content 项的域名为新域名 # 修改 post_content 域名为现使用的新域名。原域名https://www.sgtfz.cn,新域名https://sgtfz.cn UPDATE wp_posts SET post_content = REPLACE(post_content,'https://www.sgtfz.cn','https://sgtfz.cn'); # 至此,数据库已经修改完成。 # 启动apache或nginx,即可进入网站操作登录wordpress后台。 # 设置→常规→保存 # 由于我还安装了buddypress插件,所以,还需修改一下数据库 UPDATE wp_bp_activity SET primary_link = REPLACE(primary_link,'https://www.sgtfz.cn','https://sgtfz.cn'); UPDATE wp_bp_activity SET content = REPLACE(content,'https://www.sgtfz.cn','https://sgtfz.cn'); UPDATE wp_bp_activity SET action = REPLACE(action,'https://www.sgtfz.cn','https://sgtfz.cn'); # 全部完成任务,完美工作。 # 假如数据库操作有误,我们可以删除了重建,再重新导入数据。 # 删除WordPress数据库 drop database wordpress; # 删除数据库用户 drop user '数据库用户名'@'localhost';
4、启动服务器的apache或nginx服务,访问网站
只要按照上述的步骤与顺序完成,WordPress搬家与更换域名就非常的顺利完美完成的了。
至于服务器的环境,无论是LAMP或LNMP,这不影响搬家。搭建LAMP或LNMP的方法,这里就不做详细说明了。

