使用docker-compose部署使用nginx的WordPress

1 概述

本站点使用Docker容器部署WordPress及其所需依赖,并使用Docker Compose管理多个容器

使用了以下镜像

  • mariadb
  • wordpress (php-fpm版)
  • nginx

本文将介绍通过此方法搭建全新WordPress站点的方法,文中展示的配置文件需要根据自身环境进行修改

注意:尚未尝试从其他部署方法迁移到本方法的具体过程
尝试迁移前请备份原WordPress数据

2 部署环境

  • 阿里云轻量应用服务器 CentOS 7.3
  • Docker v19.03.13
  • Docker Compose v1.27.4

获取并执行 get.docker.com 官方提供的安装脚本

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 

检查Docker安装情况

docker --version 

运行WordPress需要多个容器互相协作,因此使用Docker Compose整合这些容器

获取 Docker Compose 二进制文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 

为他们开放执行权限

sudo chmod +x /usr/local/bin/docker-compose 

如果正在使用 bash-completion,可以添加 docker-compose 命令的补全

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose 

检查 Docker Compose 安装情况

docker-compose --version 

3 部署准备

Docker Compose 的核心即为 docker-compose.yml 配置文件,在包含此文件的目录下执行

docker-compose up 

即可根据此配置文件启动数个Docker容器

用于部署WordPress的 docker-compose.yml 文件如下

version: "3.8" services: mariadb: image: mariadb:10.5   volumes: - ./mysql:/var/lib/mysql restart: always  environment:  MYSQL_ROOT_PASSWORD: your_password  MYSQL_DATABASE: your_database  MYSQL_USER: your_user  MYSQL_PASSWORD: your_password networks:  wp_net: ipv4_address: 172.16.1.4 wordpress: depends_on: - mariadb image: wordpress:php7.4-fpm  volumes: - ./wordpress:/usr/src/wordpress networks: wp_net: ipv4_address: 172.16.1.3 restart: always environment:  WORDPRESS_DB_HOST: 172.16.1.4:3306  WORDPRESS_DB_USER: your_user  WORDPRESS_DB_PASSWORD: your_password  WORDPRESS_DB_NAME: your_database nginx: image: nginx:latest    volumes: - ./wordpress:/usr/share/nginx/html/wordpress - ./config/nginx.conf:/etc/nginx/nginx.conf - ./key:/key  ports: - 80:80 - 443:443 networks: wp_net: ipv4_address: 172.16.1.2 restart: always  networks: wp_net: ipam: config: - subnet: "172.16.1.0/29" 

需要自己提前建立 nginx 配置文件并映射到 nginx容器中

nginx配置中server块配置如下 此处的配置仅为简单的https配置 还可以优化

# 监听443端口上的https请求 server { listen 443 ssl; server_name {域名}; # ssl 支持 ssl_certificate /key/{证书公钥文件}; ssl_certificate_key /key/{证书私钥文件}; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; # 处理所有路径请求 location / { root /usr/share/nginx/html/wordpress; index index.php; } # 转发php请求到 wordpress 容器中的php-fpm location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 172.16.1.3:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/src/wordpress$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } # 将http请求转发到https server { listen 80; server_name blog.smileduster.com; return 301 https://blog.smileduster.com$request_uri; } 

检查 nginx.conf 的路径是否和 docker-compose.yml 中的对应

随后转到 docker-compose.yml 所在目录下,执行

docker-compose up -d 

即可启动一个新的WordPress系统,其他映射文件夹会自动创建

使用以下命令停止Docker Compose

docker-compose down 

4 相关网站

docker hub https://hub.docker.com/

  • 搜索需要的镜像
  • 查看并选择需要的镜像版本
  • 快速了解镜像的使用方法(需要挂载的目录、可提供的变量等等)
  • 快速跳转到 Github 中该镜像的 Dockerfile
  • MariaDB镜像 https://hub.docker.com/_/mariadb
  • WordPress镜像 https://hub.docker.com/_/wordpress
  • Nginx镜像 https://hub.docker.com/_/nginx

docker官方文档 https://docs.docker.com/

  • 最靠谱的获取Docker相关教程的途径
  • Docker Compose 安装 https://docs.docker.com/compose/install/
  • Docker Compose 部署 WordPress 的简单例子
    https://docs.docker.com/compose/wordpress/

nginx 官网 http://nginx.org/

  • nginx配置起步教程 http://nginx.org/en/docs/beginners_guide.html

原文链接:https://blog.csdn.net/alpha_pikachu/article/details/109463977

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享