插件窝 干货文章 如何用Docker搭建Nginx+PHP+MySQL环境并部署WordPress

如何用Docker搭建Nginx+PHP+MySQL环境并部署WordPress

WordPress Docker Compose PHP 914    来源:    2025-04-22

使用Docker搭建Nginx+PHP+MySQL环境并部署WordPress

下面是一个完整的指南,介绍如何使用Docker Compose搭建Nginx、PHP和MySQL环境,并部署WordPress。

准备工作

  1. 确保已安装Docker和Docker Compose
  2. 创建一个项目目录,例如wordpress-docker

步骤1:创建docker-compose.yml文件

在项目目录中创建docker-compose.yml文件,内容如下:

version: '3.8'

services:
  # MySQL服务
  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
    networks:
      - wp-network

  # PHP-FPM服务
  php:
    build:
      context: .
      dockerfile: Dockerfile-php
    volumes:
      - ./wordpress:/var/www/html
    depends_on:
      - db
    networks:
      - wp-network

  # Nginx服务
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./wordpress:/var/www/html
      - ./nginx-conf:/etc/nginx/conf.d
    depends_on:
      - php
    networks:
      - wp-network

  # WordPress CLI (可选,用于自动安装)
  wordpress-cli:
    image: wordpress:cli
    depends_on:
      - db
      - php
    volumes:
      - ./wordpress:/var/www/html
    networks:
      - wp-network
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

volumes:
  db_data:

networks:
  wp-network:
    driver: bridge

步骤2:创建PHP Dockerfile

在同一目录下创建Dockerfile-php文件:

FROM php:7.4-fpm

# 安装必要的PHP扩展
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    zip \
    unzip \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql zip

# 安装Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www/html

步骤3:创建Nginx配置文件

创建nginx-conf目录,并在其中创建wordpress.conf文件:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    location ~ /\.ht {
        deny all;
    }
}

步骤4:启动容器

运行以下命令启动所有服务:

docker-compose up -d

步骤5:安装WordPress

有两种方法安装WordPress:

方法1:自动安装(使用WordPress CLI)

docker-compose run --rm wordpress-cli wp core download --locale=zh_CN
docker-compose run --rm wordpress-cli wp core config --dbhost=db --dbname=wordpress --dbuser=wordpress --dbpass=wordpress
docker-compose run --rm wordpress-cli wp core install --url=http://localhost --title="我的WordPress站点" --admin_user=admin --admin_password=admin_password --admin_email=admin@example.com

方法2:手动安装

  1. 访问 http://localhost
  2. 按照WordPress安装向导完成安装
    • 数据库主机:db
    • 数据库名:wordpress
    • 用户名:wordpress
    • 密码:wordpress

步骤6:验证安装

访问 http://localhost 应该能看到WordPress站点已经正常运行。

常用管理命令

  • 停止所有容器:docker-compose down
  • 查看运行中的容器:docker-compose ps
  • 查看日志:docker-compose logs
  • 重启服务:docker-compose restart

注意事项

  1. 生产环境中应该:

    • 使用更安全的密码
    • 配置HTTPS
    • 考虑使用更安全的MySQL版本
    • 定期备份数据库卷(db_data)
  2. 如果需要修改配置,可以:

    • 修改Nginx配置后重启Nginx容器:docker-compose restart nginx
    • 修改PHP配置后重新构建PHP镜像:docker-compose build php && docker-compose up -d
  3. WordPress文件位于项目目录下的wordpress文件夹中,可以直接修改主题和插件。

这个配置提供了一个基础的WordPress开发环境,可以根据需要进一步定制和优化。