Docker-WordPress-Nginx 项目使用教程
目录结构及介绍
docker-wordpress-nginx/
├── config
│ ├── nginx
│ │ ├── default.conf
│ │ └── ssl
│ │ ├── nginx.crt
│ │ └── nginx.key
├── docker-compose.yml
├── env.template
├── LICENSE
└── README.md
config/nginx/default.conf
: Nginx 配置文件。config/nginx/ssl/nginx.crt
和config/nginx/ssl/nginx.key
: SSL 证书和密钥文件。docker-compose.yml
: Docker Compose 配置文件,用于定义和运行多个 Docker 容器。env.template
: 环境变量模板文件,用于配置 WordPress 和 MySQL 的环境变量。LICENSE
: 项目许可证文件。README.md
: 项目说明文档。
项目的启动文件介绍
docker-compose.yml
version: '3.3'
services:
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress_data:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_ROOT_PASSWORD: rootpass
volumes:
- db_data:/var/lib/mysql
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./config/nginx/default.conf:/etc/nginx/conf.d/default.conf
- wordpress_data:/var/www/html
volumes:
wordpress_data:
db_data:
wordpress
: 定义 WordPress 服务,使用最新版本的 WordPress 镜像,映射端口 8000 到容器的 80 端口,并配置环境变量和数据卷。db
: 定义 MySQL 服务,使用 MySQL 5.7 镜像,配置环境变量和数据卷。nginx
: 定义 Nginx 服务,使用最新版本的 Nginx 镜像,映射端口 8080 到容器的 80 端口,并配置 Nginx 配置文件和数据卷。
项目的配置文件介绍
config/nginx/default.conf
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://wordpress:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
listen 80
: 监听 80 端口。server_name example.com
: 服务器名称。location /
: 反向代理到 WordPress 容器。error_page 404 /404.html
: 配置 404 错误页面。
env.template
# docker-compose environment file
#
# When you set the same environment variable in multiple files,
# here’s the priority used by Compose to choose which value to use:
#
# 1. Compose file
# 2. Shell environment variables
# 3. Environment file
# 4. Dockerfile
# 5. Variable is not defined
WORDPRESS_DB_HOST=db
WORDPRESS_DB_USER=exampleuser
WORDPRESS_DB_PASSWORD=examplepass
WORDPRESS_DB_NAME=exampledb
MYSQL_DATABASE=exampledb
MYSQL_USER=exampleuser
MYSQL_PASSWORD=
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考