wp config.php 迁移,记一次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一样。

这只是我的临时解决方法,应该是可以直接修改数据库里面关于这个域名字符长度设置的,但不知怎么修改,如有更好的解决方法请留言给我,我学习一下,谢谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值