前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迁移Wordpress到Docker

迁移Wordpress到Docker

作者头像
oec2003
发布2024-05-15 17:30:32
1030
发布2024-05-15 17:30:32
举报
文章被收录于专栏:不止dotNET不止dotNET

很多年前我的个人博客是部署在 Linode 的服务器,后来又给女儿弄了一个博客记录女儿的成长,使用的是 Wordpress ,老婆执笔。现在我的博客早已迁移到了 github ,女儿也长大了,博客好几年没有更新,准备停掉 linode 服务器,将女儿博客迁移到本地。

迁移有三个步骤:

1、备份原博客数据;

2、本地部署 wordpress;

3、还原。

备份

1、将服务器 wwwroot 目录中的文件拷贝到本地。

2、将 mysql 数据库进行备份。

本地部署 wordpress

本地部署 wordpress 采用 docker-compose 的方式,wordpress 使用的是最新版本,mysql 和之前 linode 服务器使用的同一版本,docker-compose.yml 文件内容如下:

代码语言:javascript
复制
version: '3'

networks:
 wp_net:
  driver: bridge
  ipam:
   driver: default
   config:
    - subnet: 172.88.1.0/24

services:
  db:
    image: mysql:5.7
    volumes:
      - ./data:/var/lib/mysql
    restart: always
    ports:
      - "13306:3306"
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=Aa123456
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wpadmin
      - MYSQL_PASSWORD=Aa123456
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password
    networks:
     wp_net:
      ipv4_address: 172.88.1.2


  wp:
    image: wordpress:latest
    ports:
      - "12000:80"
    restart: always
    volumes:
      - ./wordpress/:/var/www/html
    environment:
      - TZ=Asia/Shanghai
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=wpadmin
      - WORDPRESS_DB_PASSWORD=Aa123456
      - WORDPRESS_DB_NAME=wordpress
    networks:
     wp_net:
      ipv4_address: 172.88.1.3

volumes:
  db_data: {}
  wordpress_data: {}

在 docker-compose.yml 所在目录执行 docker-compose up -d 进行容器构建,构建完成后,就可以在浏览器输入 http://localhost:12000 进行访问:

按照向导进行博客的初始化:

还原

因之前部署的 wordperss 版本和现在最新的版本差异很大,所以没有使用完全覆盖的方式。

1、在构建的数据库中创建一个名为 wordpress_bak 的库,将备份的数据库还原到这个库中。

代码语言:javascript
复制
docker cp backup.sql 78fdd98f5834:/
docker exec -it 78fdd98f5834 bash
>mysql -uroot -pAa123456 wordpress < backup.sql

2、构建成功后,默认的 wordpress 库中的表有些示例数据,使用下面语句将示例数据删除:

代码语言:javascript
复制
DELETE FROM wp_posts
DELETE from wp_terms

3、备份 wordpress_bak 库中的 wp_posts 表,发现备份时提示错误:

原因是还原的数据库日期类型的字段有不符合要求的默认值,将 wp_posts 表中的日期字段的默认值去掉即可。

4、使用下面语句将 wp_posts 表中 post_content 字段中内容的域名进行替换,这一步骤是将文章中的图片地址替换为本地地址:

代码语言:javascript
复制
update wp_posts set post_content = REPLACE(post_content,'http://xxxx.me','http://localhost:12000')

5、将 wordpress_bak 库中的 wp_posts、wp_terms 两个表的数据同步到 wordpress 库。同步完后,可以在浏览器访问:http://localhost:12000 ,可以看到所有的文章列表,但点击去后图片不能显示。

6、将备份的 wwwroot 中的 /wp_content/uploads 目录复制到新安装的 wordpress/wp_content 目录中,这时图片就能正常访问了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止dotNET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 备份
  • 本地部署 wordpress
  • 还原
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档