docker-compose 迁移 wordpress
docker-compose 允许用户通过一个单独的docker-compose.yml 模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)。
我一直想把自己的博客迁移到docker 上来,之前看docker实战,记得里面有利用docker-compose 配置wordpress 的说明,趁着周末,拿出点时间将博客完全迁移过来。
准备工作
首先要做的是数据的备份,由于数据不多,我们首先利用mysqldump将mysql 中的数据备份出来。
1 | mysqldump -u root -p wordpress_db >wordpress.2019.11.02.sql |
然后将 wordpress 的程序 备份一下,避免出现问题。
安装 docker-compose
1 | sudo curl -L "https://github.com/docker/compose/releases/download/1.17.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
授权:
1 | sudo chmod +x /usr/local/bin/docker-compose |
编写docker-compose.yml, 在这之前需要查看自己之前的php 版本以及wordpress 版本,然后更改 以下文件的wordpress 镜像的版本。不然的化,迁移可能会有问题
可以去docker hub(https://hub.docker.com/_/wordpress?tab=tags&page=1&ordering=-last_updated) 上查找版本,我们使用的是 apache 版本的。
然后将挂载的文件夹建好
1 | version: "3" |
开始迁移
在 docker-compose.yml 同级目录执行以下命令
1 | docker-compose up -d |
查看日志:
1 | docker-compose logs |
将之前备份好的数据导入到 mysql 中。建议客户端连接之前的数据库,将sql文件导入。执行之前,如果域名有变化,需要将sql文件中的域名全部替换掉再执行。
然后服务器上将刚才的服务停掉
1 | docker-compose stop |
将挂载的wordpress 文件夹中的文件删掉,替换为自己的wordpress 文件。记得给文件夹赋权限。
1 | docker-compose start |
这样程序就迁移成功了。
配置nginx 代理
nginx 我们直接装在主机里面了,没有使用docker 管理。
编写nginx 配置文件
1 | server { |
将配置文件放在nginx 配置文件的 conf.d 文件夹中,重启nginx,访问域名即可。
之前的博客配置了固定链接 404 的问题
需要开启apache2 的 伪静态
将容器中的配置文件拷贝出来修改
1 | docker cp wordpress:/etc/apache2/apache2.conf . |
将
AllowOverride None
改为
AllowOverride All
修改完拷贝进去
1 | docker cp apache2.conf wordpress:/etc/apache2/apache2.conf |
进入容器
1 | docker exec -it wordpress /bin/bash |
执行
1 | a2enmod rewrite |
退出容器后重启容器
1 | docker restart wordpress |
再次访问就不会404了