记一次wordpress网站迁移的经历
wordpress网站迁移说难不难,说简单不简单,涉及的东西也是很多很杂。
找了资料很多都是说用什么插件,有些还需要付费购买才能用,用了之后还各种问题,
我做了简单的尝试, 不需要wordpress的插件,熟悉linux命令,完全可以自行迁移
环境: Centos 7 , LNMP 旧站点:a.test.com 旧数据库: atest 旧项目代码路径: /var/www/atest 新的站点: b.test.com 新数据库: btest 新项目代码路径: /var/www/btest
将旧 a.test.com 站点 迁移到新 b.test.com域名站点
迁移步骤: 复制wordpress代码-->更改配置域名/数据库连接信息-->导出数据库修改域名/存储路径信息-->导入新数据库-->添加nginx配置-->重启服务
1、复制a.test.com完整代码,这里可以压缩或者直接复制一份wordpress代码
# cp -r atest btest
2、修改新复制的wordpress代码中所有出现a.test.com域名的字符替换为 b.test.com
# cd btest # for i in `grep -R "a.test.com" . | awk -F":" '{print $1}' | sort -u`;do sed -i 's/a.test.com/b.test.com/g' $i; done
修改wordpress数据库配置
# vi wp-config.php
更改新的数据库连接信息
至此wordpress新的站点项目代码已经修改好新的域名和新的数据库信息
3、导出数据库(mysqldump),保存为sql格式文件
以 atest数据库为例 # mysqldump -uroot -p atest > atest.sql
4、修改数据库文件atest.sql (也可以用wp-cli工具wp search-replace直接修改), 这里直接修改sql文件是最为稳妥
修改替换atest.sql数据库文件中出现a.test.com的字符改为b.test.com
# sed -i 's/a.test.com/b.test.com/g' atest.sql
修改替换test.sql数据库文件中的网站存储路径, 我这里旧的存储路径是/var/www/atest, 改为新的存储路径/var/www/btest
# sed -i 's/var\/www\/atest/var\/www\/btest/g' atest.sql
5、新建数据库btest, 允许admin/admin用户所有权限,自行根据情况定义
> create database btest character set utf8; > grant all privileges on btest.* to 'admin'@'%' identified by 'admin'; > flush privileges; 导入修改好的atest.sql数据 > use btest; > source /root/atest.sql;
至此数据库迁移完成,并已经修改好新的站点相关域名,存储路径信息
6、最后一步配置nginx (支持wordpress多站点的配置)
nginx https配置 和 root路径根据自身情况自行配置,这里不多说 # vi /etc/nginx/conf.d/btest.conf server { server_name b.test.com; fastcgi_pass_request_headers on; fastcgi_pass_header Authorization; root /var/www/btest; #Load configuration files for the default server block. rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent; if (-f $request_filename){ set $rule_2 1; } if (-d $request_filename){ set $rule_2 1; } if ($rule_2 = "1"){ } rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last; rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last; rewrite /. /index.php last; location / { index index.html index.php; } location ~ ^(.+\.php)(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } listen 443 ssl; ssl_certificate /etc/nginx/ssl/b.test.com.crt; ssl_certificate_key /etc/nginx/ssl/b.test.com.key; } server { if ($host = b.test.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name b.test.com; return 404; # managed by Certbot }
7、重启nginx服务,访问新地址,即可
问题:
多站点迁移测试中发现如果a.test.com的域名迁移更改为 cc.test.com 访问新地址后发现有一些原来的主题样式设置失效了,又要重新设置,重新设置是不可能,有一些操作设置都忘记了
我的解决方法:
迁移前 a.test.com的域名字符长度是 10, 迁移后的新域名 cc.test.com字符长度是 11, 两个域名字符长度不一样,就会出现迁移后样式设置丢失的情况,多方查找原因,最大可能是数据库会同时保存域名的字符串长度,判断唯一性。所以更改我的域名迁移前和迁移后的域名字符长度一样 b.test.com后,迁移后就显示正常了,网站跟原来的wordpress一样。
这只是我的临时解决方法,应该是可以直接修改数据库里面关于这个域名字符长度设置的,但不知怎么修改,如有更好的解决方法请留言给我,我学习一下,谢谢!!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MPLS OPTION A配置原理及数据通信分析
场景描述:as 100和as 300模拟两家公司的自治域系统,现因业务合作需求,两公司需要建设mpls ***实现私网互访,as 567和as 8910模拟ISP,要求ar1 lo0口172.16.1.1和ar3 lo0口172.16.3.3通信。(ar2和ar4同需求) 各广播域网段和地址如图,isp路由器lo0地址以序号编号,如R5 lo0地址为5.5.5.5/32,R6-R10同理;R1-R4 lo0地址分别为172.16.1.1/32,172.16.2.2/32,172.16.3.3/32,172.16.4.4/32. 一、isp内部igp互通1.1、配置所有设备ip地址,如图(具体步骤略)1.2、isp内建立ospf邻居,宣告环回口 R5: ospf 1 router-id 5.5.5.5 area 0.0.0.0 network 5.5.5.5 0.0.0.0 network 56.1.1.5 0.0.0.0 R6: ospf 1 router-id 6.6.6.6 area 0.0.0.0 network 6.6.6.6 0.0.0.0 network 56.1.1.6 ...
- 下一篇
应用架构之道:分离业务逻辑和技术细节
架构 什么是架构? 关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。 硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原则进行切分,切分的原则,是要便于不同的角色进行并行工作。 为什么需要架构? 有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组件都需要设计和架构。 我很喜欢《系统架构:复杂系统的产品设计与开发》里面的一句话:结构良好的创造活动要优于毫无结构的创造活动。 与之相对应的,现在很多敏捷思想提倡 no design,只要 work 就好。期待好的架构可以在迭代中自然涌现。这个想法有点太理想化了,在现实中,只要能 work 的代码,工程师是很少有动力去重构和优化的。 架构师的职责 作为架构师,我们最重要的价值应该是“化繁为简”。但凡让事情变得更复杂,让系统变得更晦涩难懂的架构都是值得商榷的。 架构师的工作就是要努力训练自己的思维,用它去理解复杂的系统,通过合理的分解和抽象,使哪些系统不再那么难懂。我们应该努...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作