WordPress 容器化部署全教程

本文将详细讲解如何使用 docker compose 方式部署整个WordPress博客系统

部署过程界面使用的是群晖DSM7系统,但因为我们是容器化部署,因此你可以在任意一台支持 docker 的服务器上进行部署,包括但不限于 群晖NAS绿联NAS极空间NASCentOSDebian

容器部署

因为WordPress博客系统依赖Mysql数据库,所以你首先得保证有一个可以访问的数据库,如果没有的话可以参考下面的教程手动部署一个Mysql容器

假设我们所有的容器部署的文件夹路径都在 ~/docker 下操作

Mysql 容器

  1. 新建 mysql 文件夹,用于保存容器相关内容和配置文件

  2. mysql 文件夹下分别新建 dataconflog 文件夹

  3. mysql 文件夹下新建文件名为 compose.yaml 并复制粘贴下面的内容到里面

    version: "3"
    
    services:
      mysql:
        image: mysql:8.2.0
        hostname: mysql
        container_name: mysql
        restart: on-failure:3
        volumes:
          - ./data/:/var/lib/mysql
          - ./conf/my.cnf:/etc/my.cnf
          - ./log:/var/log/mysql
          - /etc/timezone:/etc/timezone:ro
          - /etc/localtime:/etc/localtime:ro
        ports:
          # 修改这里的对外映射端口33306为你自己的端口,如果不需要对外暴露使用可以不用写ports设置,
          - 33306:3306
        network_mode: "bridge"
        environment:
          # 设置数据库root账户的管理员密码
          MYSQL_ROOT_PASSWORD: mysql_12345
          TZ: Asia/Shanghai
        privileged: true
        command:
          - --default-authentication-plugin=mysql_native_password
    
  4. 粘贴并修改完成上面的配置后,切换路径到 mysql/conf

  5. 新建名为 my.cnf 的文件并复制粘贴下面的内容到文件中

    [mysqld]
    skip-host-cache
    skip-name-resolve
    datadir=/var/lib/mysql
    socket=/var/run/mysqld/mysqld.sock
    secure-file-priv=/var/lib/mysql-files
    user=mysql
    log_error_suppression_list='MY-013360'
    character_set_server=utf8
    lower_case_table_names=1
    group_concat_max_len=1024000
    log_bin_trust_function_creators=1
    pid-file=/var/run/mysqld/mysqld.pid
    [client]
    socket=/var/run/mysqld/mysqld.sock
    !includedir /etc/mysql/conf.d/
    
  6. container manager 中新建项目(别的服务可以直接切换到~/docker/mysql 路径下使用 docker compose up 构建项目)
    6732f47a5f679.webp

  7. 启动完成
    6732f712978de.webp

下面的步骤是为 WordPress 部署做准备的

  1. 进入mysql容器的后台
    6732f78bb4777.webp

  2. 点击新增,进入 bash
    6732f7c1479a9.webp

  3. 根据提示依次输入下面的命令

    #登陆mysql,下面命令让你输入密码进入数据库
    mysql -u root -p
    # 创建wordpressdb数据库
    create database wordpressdb;
    # 使用wordpressdb数据库
    use wordpressdb;
    # 创建wordpress用户
    create user 'wordpress'@'%' identified by 'password';
    # 将wordpressdb数据库授权给用户wordpress
    grant select,update,insert,delete,create on wordpressdb.* to wordpress;
    # 刷新权限
    flush privileges;
    # 提交
    commit;
    
  4. 完成后我们就创建了一个名为wordpress密码是password的账号并且有权限管理新建的数据库wordpressdb

WordPress 容器

  1. 新建 wordpress 文件夹,用于保存容器相关内容和配置文件

  2. wordpress 文件夹下新建 data 文件夹

  3. wordpress 文件夹下新建文件名为 compose.yaml 并复制粘贴下面的内容到里面

    version: "3"
    services:
      wordpress:
        image: wordpress:php8.3
        container_name: wordpress
        ports:
          # 对外访问的映射端口
          - 18088:80/TCP
        deploy:
          resources:
            limits:
              # cpus: 'lower'
              memory: 8G
        volumes:
          - ./data:/var/www/html
        environment:
          WORDPRESS_DB_HOST: mysql
          # 分别填写刚才创建的数据库相关信息
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: password
          WORDPRESS_DB_NAME: wordpressdb
        restart: on-failure:3
        network_mode: "bridge"
        external_links:
          - mysql
    
  4. container manager 中新建项目(别的服务可以直接切换到~/docker/mysql 路径下使用 docker compose up 构建项目)

  5. 构建完成后在浏览器打开 http://ip:18088 访问服务

  6. 根据提示完成基本信息填写后执行安装(这个过程慢一点可能会等待约5分钟,不要操作该页面)

  7. 等待完成安装后即可访问,后台登陆地址是 /wp-login.php,后台地址wp-admin.php

WordPress重点插件

因为WordPress博客系统的插件基本都是国外的,建议使用🪜后进行插件安装,否则大概率安装失败

这里只说明两个重要的插件,一个用于控制上传文件大小的(用这个就可以不用修改php.ini文件了),一个用于管理SSL设置的(群晖反代可以不用这个)

Big File Uploads

上传文件大小修改插件

使用方法:

  1. 安装并启用插件
  2. 媒体-上传文件中修改上传文件大小限制并保存即可

6732eeb6a117b.webp

6732ee6cb1bb6.webp

6732ef00c43ce.webp

6732ef16721a2.webp

Really Simple Security

修改站点HTTPS请求异常插件

使用方法:

  1. 安装并启用插件
  2. 根据提示自动检查并部署即可使用

6732eff992295.webp

6732f009ee614.webp

6732f0231a66d.webp

6732f03969b3f.webp