使用Docker-Compose快速部署WordPress与Nginx环境

来自:素雅营销研究院

头像 方知笔记
2025年05月31日 15:49

一、准备工作

在开始之前,请确保您的系统已经安装了Docker和Docker-Compose。您可以通过以下命令检查是否已安装:

docker --version
docker-compose --version

如果尚未安装,请参考官方文档进行安装。

二、创建项目目录结构

首先创建一个项目目录并进入:

mkdir wordpress-nginx && cd wordpress-nginx

三、编写docker-compose.yml文件

在项目目录中创建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"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- wordpress_data:/var/www/html
depends_on:
- wordpress

volumes:
db_data:
wordpress_data:

四、配置Nginx

在项目目录中创建nginx.conf文件,内容如下:

server {
listen 80;
server_name your_domain.com;

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

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

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

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

五、启动服务

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

docker-compose up -d

六、访问WordPress

等待所有容器启动完成后,您可以通过以下方式访问WordPress:

  1. 直接访问Nginx:http://your_server_ip
  2. 直接访问WordPress容器:http://your_server_ip:8000

七、常见问题解决

  1. 端口冲突:如果80端口已被占用,可以修改docker-compose.yml中nginx的端口映射,例如改为"8080:80"

  2. 数据库连接问题:确保WordPress容器中的数据库配置与db服务中的环境变量一致

  3. 文件权限问题:如果出现文件写入权限问题,可以尝试修改WordPress目录权限:

docker-compose exec wordpress chown -R www-data:www-data /var/www/html

八、停止和清理

要停止服务:

docker-compose down

要完全删除数据卷:

docker-compose down -v

通过以上步骤,您已经成功使用Docker-Compose部署了WordPress和Nginx环境。这种部署方式不仅简单高效,而且便于迁移和维护,是搭建WordPress网站的现代化解决方案。