关于我
~一个热爱火影的业余小提琴玩家~
Joynaruto

Docker容器之WordPress搭建

前言

我的博客从2018年走到现在不知不觉已经有4个年头了。一路走来转过好几个地方,最早搭建在群晖上,通过套件部署起来十分方便,唯一不足就是由于运营商封禁了80443端口,外网访问起来需要通过加上端口号。后来直到被电信查水表后无奈关闭外网端口

而后把博客转为到内网访问
再后来接触云服务器后便把博客迁移过去了,终于可以去掉端口号直接通过域名访问了
搭建方式采用的是传统方法,需要提前部署PHP以及数据库,再使用Apache进行配置反代。整体部署难度虽算不上困难,但也需一定的时间而且后续的升级也容易出现问题。最近在尝试了下用docker来部署WordPress,部署过程非常简单,后续升级也很方便。再次记录下 :idea:

开始搭建

安装Docker及Docker-Compose

#安装docker
wget -qO- get.docker.com | bash
#查看Docker版本
docker -v
#设置开机启动
systemctl enable docker
#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#授予执行权限
sudo chmod +x /usr/local/bin/docker-compose
#查看Docker-Compose版本
docker-compose --version

搭建Wordpress

#建立文件夹
mkdir -p /root/data/docker_data/wp
#进入目录
cd /root/data/docker_data/wp
#编辑docker-compose.yml文件
nano docker-compose.yml

docker-compose.yml内容如下:

version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - ./db:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./data:/var/www/html
    ports:
      - "7000:80"      //7000可自行更改
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}
  wordpress_data: {}

运行容器

docker-compose up -d 

反向代理

我使用的是Nginx Proxy Manager来进行反代。打开Block Common Exploits,配置完SSL后就能通过域名直接访问WordPress咯 :idea:

一些配置及优化

优化1:上传文件大小限制2m

#进入wordpress容器
docker exec -it wordpress bash   //wordpress是容器名
#复制php.ini
cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
#安装nano
apt update -y && apt install nano -y
#修改php.ini
nano /usr/local/etc/php/php.ini
#修改三个地方
upload_max_filesize = 200M    //文件大小限制
post_max_size = 250M          //post大小限制
memory_limit = 500M           //内存占用限制
#重启容器
docker-compose restart

优化2:配置redis

插件商店安装Redis Object Cache后,然后编辑/wp路径/data/wp-config.php如下

define("WP_REDIS_HOST","172.31.0.2");   //修改成redis的ip
define("WP_REDIS_PORT",6379);           //修改成redis的端口

更新

前言说到普通安装在后续更新上需要更新本体及环境,而Docker版在更新上就简单很多了,按下列步骤更新即可

#进入Wordpress的yml目录
cd /root/data/docker_data/wp
#停止容器
docker-compose stop
#拉取最新镜像
docker-compose pull
#启动容器,即完成更新
docker-compose up -d

最后

特别提醒下解除上传文件大小限制的操作在每次更新容器后都需要执行,我尝试过映射对应路径进行固化的操作但失败了;而Redis缓存配置固化顺利成功,后续更新后不需要再次操作。

发表评论

textsms
account_circle
email

Joynaruto

Docker容器之WordPress搭建
前言 我的博客从2018年走到现在不知不觉已经有4个年头了。一路走来转过好几个地方,最早搭建在群晖上,通过套件部署起来十分方便,唯一不足就是由于运营商封禁了80和443端口,外网访问起…
扫描二维码继续阅读
2022-05-04