记录一次wordpress博客迁移

发布于 2023-12-26  2,267 次阅读


aws的小鸡鸡已经不能满足我了,再加上用的过时的 centos7 显得十分没有品味,换成了hybula的中等鸡鸡,AMD EPYC 9554 2 core,2 GB DDR5 ECC 4800。搞个博客是绰绰有余了。黑五一个季度才15.75欧,属于是血赚。

如果要照抄这篇指北的话,uploads.ini文件应该放在/home/blog/uploads.ini,且创建/home/blog/wp和/home/blog/wpmysql两个文件夹用以在后期简单迁移备份wordpress和mysql

1. 安装docker

前几天写了一个docker安装的小流程,后来跟群友交流后发现意义不大,直接用docker的一键脚本省时省心

curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

2. 创建uploads.ini文件

创建/home/blog/uploads.ini文件,省的以后还要进入wordpress镜像修改php.ini。docker-wordpress默认的上传最大文件限制为 2M,最长时间60s,显然是不够的。

file_uploads = On
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 600

3.创建一个docker-compose.yml文件并up

创建/home/blog/docker-compose.yml,我个人用的文件放到这里了,如果有人想照抄应该也没问题,应该是可以直接用的,需要改成自己的邮箱、数据库等地方都注释好了。我个人把docker-compose.yml文件放在了/home/blog下

version: '3.9'
services:
    nginx-proxy-manager:
        container_name: nginx-proxy-manager
        image: zoeyvid/nginx-proxy-manager
        restart: always
        network_mode: host
        volumes:
            - "/opt/npm:/data"
            - "/var/www:/var/www"
            - "/opt/npm-letsencrypt:/etc/letsencrypt"
        environment:
            - "TZ=Europe/Berlin"

    wordpress:
        image: wordpress
        restart: always
        privileged: true
        ports:
            - 8080:80
            - 8081:443
        container_name: wordpress
        environment:
            WORDPRESS_DB_HOST: mysql
            WORDPRESS_DB_USER: #mysql用户名
            WORDPRESS_DB_PASSWORD: #mysql密码
            WORDPRESS_DB_NAME: #mysql数据库名
        volumes:
            - /home/blog/wp:/var/www/html
            - /etc/letsencrypt
            - /home/blog/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
        deploy:
        restart_policy:
        condition: on-failure

        mysql:
            image: mysql:5.7
            restart: always
            privileged: true
            environment:
              MYSQL_DATABASE: #mysql数据库名
              MYSQL_USER: #mysql用户名
              MYSQL_PASSWORD: #mysql密码
              MYSQL_RANDOM_ROOT_PASSWORD: '1'
            container_name: mysql
            volumes:
              - /home/blog/wpmysql:/var/lib/mysql
            deploy:
              restart_policy:
                condition: on-failure
volumes:
  wordpress:
  db:

在当前目录下up,推荐先docker-compose up看一下有没有什么报错,再docker-compose up -d

4. 配置Nginx proxy manager

这个对我来讲是新东西,很现代,很优雅,有GUI对我这种猴子非常的友好。zoeyvid/nginx-proxy-manager
先用ip:81 访问后台管理界面,然后输入账号密码进入后台。这个NPM镜像的初始账户密码如下

Email:    admin@example.com
Password: iArhP1j7p1P6TA92FA2FMbbUGYqwcYzxC4AVEe12Wbi94FY9gNN62aKyF1shrvG4NycjjX9KfmDQiwkLZH1ZDR9xMjiG2QmoHXi

进入后会填写个人信息,重置密码
点击Add Proxy Host,填写成这个样子

Forward Host那么可能和我这个并不一样,如果搭建的wordpress和nginx proxy manager服务所在不是一个服务器,则填写能访问对应服务的IP。如果都在同一台服务器上,则填写在服务器中输入ip addr show docker0 命令获取得到的ip。后者一般是172.17.0.1
搞完了应该就可以访问HTTP的博客了,但是不太安全。可以在TLS Certificates栏中,右侧Add TLS Certificates - certBot申请一个证书,如果不是搞通配符证书很简单

申请完之后再在Proxy Host栏Edit Proxy Host-TLS选择刚才申请好的证书即可。

5.一些可选项

最后更新于 2023-12-26