共计 2781 个字符,预计需要花费 7 分钟才能阅读完成。
wordpress 站点切换域名
背景
站点之前使用的域名是 bwbit.com
,从语义和寓意上来说,都不够清晰,现在重新购买了 opshub.cn
的域名,故记录 wordpress 站点切换域名需要做什么。
操作步骤
域名备案
如果站点搭建在大陆的服务器,需要提前进行域名备案,从备案到通过,时长大约在1~2周左右。
申请新域名证书
可参考站内文章:使用 acme 获取免费 https 证书
站点备份
执行变更操作前,先全量备份站点数据。由于我使用了 docker-compose 进行的部署,直接备份整个数据目录即可。
如果变更失败,回滚备份时需要注意权限问题。html 目录需要递归修改为 www-data
的属组和属主。
cp -R /usr/local/wordpress/ /usr/local/wordpress-bak-2023-10-18
# ls -l /usr/local/wordpress/volumes
total 8
drwxr-xr-x 6 systemd-coredump root 4096 Oct 17 23:10 database
drwxr-xr-x 5 www-data www-data 4096 Oct 18 09:54 html
wordpress 配置
- 网站信息配置,主要检索和旧域名相关的配置,替换为新域名
- 修改 wps-config.php 为多域名配置,彻底切换完毕后可以彻底移除旧域名
-
$domain = array("bwbit.com", "www.bwbit.com", "opshub.cn", "www.opshub.cn"); if(in_array($_SERVER['HTTP_HOST'], $domain)){ define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); }
- 修改 网站介绍:
用户
–>个人资料
、设置
–>常规
- 修改 部分主题配置,例如网站图标,头像,简介,页脚备案信息
- 修改 MySQL 数据库中
siteurl
、home
字段值
# 进入MySQL容器 # docker exec -it 5628d525f32f bash bash-4.2# mysql -u wordpress -p -A Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.42 MySQL Community Server (GPL) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 选择数据库 mysql> SELECT option_value FROM wp_options WHERE option_name = 'siteurl' OR option_name = 'home'; ERROR 1046 (3D000): No database selected mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | wordpress | +--------------------+ 2 rows in set (0.00 sec) mysql> use wordpress; Database changed # 查询当前字段值 mysql> SELECT option_value FROM wp_options WHERE option_name = 'siteurl' OR option_name = 'home'; +---------------------------+ | option_value | +---------------------------+ | https://www.bwbit.com:443 | | https://www.bwbit.com:443 | +---------------------------+ 2 rows in set (0.00 sec) # 修改值 mysql> UPDATE wp_options SET option_value = 'https://www.opshub.cn:443' WHERE option_name = 'siteurl' OR option_name = 'home'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> SELECT option_value FROM wp_options WHERE option_name = 'siteurl' OR option_name = 'home'; +---------------------------+ | option_value | +---------------------------+ | https://www.opshub.cn:443 | | https://www.opshub.cn:443 | +---------------------------+ 2 rows in set (0.00 sec)
-
文章内容修改,文章内容中可能存在图床或引用链接外链使用的旧域名
- 此处踩坑了,最开始使用的
Jetpack
插件的导出导入功能。由于文章原始格式是md,在执行导出,本地批量编辑,再导入后 md 格式会变为 html。 - 因为文章数量不多,选择了直接从后台编辑,将 md 批量复制到本地替换完毕后再覆盖旧内容。
- 更新记录 2023-10-25 :可以直接在数据库内进行批量替换,sql 如下
# 仅填入域名,不需要带协议 UPDATE wp_posts SET post_content = REPLACE( post_content, '旧域名', '新域名' );
- 此处踩坑了,最开始使用的
nginx 配置
我的计算放在家里的服务器,入口在公有云厂商。两个地方都部署了nginx。
- 需要添加新域名配置
- 做 301 跳转将旧域名 www.bwbit.com 跳转到 www.opshub.cn
- 将 opshub.cn 301 跳转到 www.opshub.cn
cdn 配置
腾讯云上给新域名创建cdn。
dns 配置
给新域名添加 cname 解析,指向公有云厂商 cdn 域名。
百度站长平台
- 新域名提交收录。
- 旧域名执行网站改版,转到新域名。
引用链接
正文完
发表至: 建站
2023-10-18