docker-wordpress迁移踩坑记录


docker-wordpress迁移踩坑记录
01

 事件概述

之前在腾讯云服务器上搭建了一个内部wiki,使用的是docker-wordpress+docker-mysql搭建方法,如今需要将网站迁移到本地服务器中,这里记录一下操作方法以及踩的一些坑。

docker-wordpress迁移踩坑记录
02

数据备份

首先需要将原网站的一些内容备份下来

1.数据库备份并导出

docker exec -it mysql mysqldump -uusername -ppassword -ddatabase > /localpath/wordpress.sql备注:database为需要导出的数据库名

2.将wordpress容器中的内容导出到本地

docker cp wordpress:/var/www/html/wp-content/ /localpath/
docker-wordpress迁移踩坑记录
03

在新的服务器上搭建环境

1.将镜像拉到本地:

docker pull wordpress:latestdocker pull mysql:latest

2.运行镜像:

2.1.首先运行mysql镜像,这里的mysql版本为mysql-8

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -v mysql-data:/var/lib/mysql mysql备注:--name 为运行后的容器名,默认账户为root,-e MYSQL_ROOT_PASSWORD为mysql登录密码,并创建一个新的数据库名为wordpress

2.2.进入容器:

docker exec -it mysql /bin/bash

2.3.登录数据库:

mysql -uroot -proot备注:此处密码为-e MYSQL_ROOT_PASSWORD参数设定的密码

2.4.修改数据库密码:

这时可以看到root用户的加密方式为caching_sha2_passoword,而navicat连接所用的方式为native_password。mysql为远程连接和本地连接提供了不同的密码验证方式,因此需要对验证方式进行修改。

use mysql;select host,user,plugin from users;

docker-wordpress迁移踩坑记录

备注:

1、修改远程连接数据库密码:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'remotepassword';

注意:这里修改的密码不是上面-e MYSQL_ROOT_PASSWORD参数设定的密码,而是建wordpress时连接数据库的密码,修改后登录数据库密码是不会变的。

2、如果需要修改数据库密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'localpassword';

3、另外,如果之前搭过docker的mysql镜像,且存在数据卷(volume)没有清理的话,登录时可能会出现密码错误的情况,这是镜像在加载时使用了现有的数据卷,需要用之前的mysql密码登录,不过如果之前的环境不需要了或者搭载容器失败后想重新搭载,还是建议删除数据卷

查看现有数据卷:

docker volume ls

删除数据卷:

docker volume rm volume-name

2.5.运行wordpress镜像

docker run -d  --name wordpress --link mysql:mysql -p 8080:80 wordpress

访问localhost:8080  这里连接数据库时使用的就是remotepassword注意主机需要改为mysql(你的mysql容器名)

如果是第一次搭建wordpress的话,接下来就设置网站登录账号密码就好,如果是做迁移,之后的注册界面可以随意填写,成功搭建后开始导入备份

docker-wordpress迁移踩坑记录

docker-wordpress迁移踩坑记录


docker-wordpress迁移踩坑记录
04

导入备份

1.导入网站备份

将本地备份文件拷贝到容器中:

docker cp /localpath/wp-content wordpress:/var/www/html/

进入wordpress容器:

docker exec -it wordpress /bin/bash

修改备份文件的权限:

chwon -R www-data:www-data wp-content

2.导入数据库备份

将本地数据库备份拷贝到容器中:

docker cp /localpath/wordpress.sql mysql:/

登录数据库:

mysql -uroot -plocalpassword

导入备份:

use wordpresssource /wordpress.sql

修改原数据库中的链接:

UPDATE wp_options SET option_value = REPLACE(option_value,‘旧地址’,‘新地址’);UPDATE wp_posts SET post_content = REPLACE(post_content,‘旧地址’,‘新地址’);UPDATE wp_posts SET post_excerpt= REPLACE(post_excerpt,‘旧地址’,‘新地址’);UPDATE wp_postmeta SET meta_value = REPLACE(meta_value,'旧地址','新地址');

至此,网站迁移完毕,网站打开后会有一些配置失效,但在后台自定义修改一下即可,背景图片可能需要从上传内容中重新导入,无需重新上传,模板也可以正常加载。

往期精彩推荐
docker-wordpress迁移踩坑记录


记一次搭建靶场渗透过程(1)

记一次搭建靶场渗透过程(2)

记一次搭建靶场渗透过程(3)

docker-wordpress迁移踩坑记录

docker-wordpress迁移踩坑记录

           团队介绍

银河护卫队super,是一个致力于红队攻防实战、内网渗透、代码审计、安卓逆向、安全运维等技术干货分享的队伍,定期分享常用渗透工具、复现教程等资源。欢迎有想法、乐于分享的具备互联网分享精神的安全人士进行交流学习。
docker-wordpress迁移踩坑记录

点击关注银河护卫队super

原文始发于微信公众号(银河护卫队super):docker-wordpress迁移踩坑记录

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论