下面是一个完整的指南,介绍如何使用Docker Compose搭建Nginx、PHP和MySQL环境,并部署WordPress。
wordpress-docker
在项目目录中创建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
在同一目录下创建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
创建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;
}
}
运行以下命令启动所有服务:
docker-compose up -d
有两种方法安装WordPress:
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
http://localhost
db
wordpress
wordpress
wordpress
访问 http://localhost
应该能看到WordPress站点已经正常运行。
docker-compose down
docker-compose ps
docker-compose logs
docker-compose restart
生产环境中应该:
db_data
)如果需要修改配置,可以:
docker-compose restart nginx
docker-compose build php && docker-compose up -d
WordPress文件位于项目目录下的wordpress
文件夹中,可以直接修改主题和插件。
这个配置提供了一个基础的WordPress开发环境,可以根据需要进一步定制和优化。