在Docker中安装WordPress与Nginx的完整指南

来自:素雅营销研究院

头像 方知笔记
2025年06月26日 23:42

前言

在当今的Web开发环境中,Docker已成为部署应用程序的首选工具之一。本文将详细介绍如何使用Docker容器技术快速搭建WordPress网站,并通过Nginx作为反向代理服务器来提高性能和安全性。

准备工作

在开始之前,请确保您的系统已安装以下组件:

  • Docker引擎(最新版本)
  • Docker Compose(推荐使用)
  • 基本的Linux命令行知识

步骤一:创建Docker Compose文件

我们需要创建一个docker-compose.yml文件来定义我们的服务架构:

version: '3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html

nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- wordpress

volumes:
db_data:
wordpress_data:

步骤二:配置Nginx反向代理

创建nginx.conf文件来配置Nginx:

events {
worker_connections 1024;
}

http {
server {
listen 80;
server_name your_domain.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;
}
}
}

步骤三:启动服务

在包含docker-compose.yml文件的目录中运行以下命令:

docker-compose up -d

这将启动三个服务:

  1. MySQL数据库容器
  2. WordPress应用容器
  3. Nginx反向代理容器

步骤四:完成WordPress安装

在浏览器中访问您的服务器IP或域名:

  1. 如果使用IP,访问http://your_server_ip
  2. 如果配置了域名,访问http://your_domain.com

按照WordPress的安装向导完成初始设置。

高级配置(可选)

添加SSL证书

使用Let’s Encrypt为您的网站添加HTTPS支持:

  1. 修改docker-compose.yml文件,添加certbot服务
  2. 更新Nginx配置以支持HTTPS重定向
  3. 设置证书自动续订

性能优化

  • 配置Nginx缓存
  • 启用WordPress缓存插件
  • 优化MySQL配置

常见问题解决

  1. 端口冲突:确保80和443端口未被其他服务占用
  2. 数据库连接问题:检查环境变量是否正确
  3. 文件权限问题:确保Docker有正确的卷挂载权限

结论

通过Docker容器化部署WordPress和Nginx,我们获得了一个灵活、可扩展且易于维护的网站架构。这种方法不仅简化了部署流程,还便于后续的升级和迁移。您可以根据实际需求进一步定制这个架构,添加更多服务或优化现有配置。

记得定期备份您的数据库和WordPress文件,并保持所有容器镜像更新到最新版本以确保安全性。