插件窝 干货文章 Docker搭建Nginx+PHP+MySQL环境并部署WordPress的方法

Docker搭建Nginx+PHP+MySQL环境并部署WordPress的方法

WordPress MySQL Nginx Docker 660    来源:    2025-04-27

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

准备工作

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

方法一:使用Docker Compose(推荐)

1. 创建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:

2. 创建nginx.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_pass wordpress:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

3. 启动服务

docker-compose up -d

方法二:手动创建容器

1. 创建MySQL容器

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress -d mysql:5.7

2. 创建WordPress容器

docker run --name wordpress --link mysql:mysql -e WORDPRESS_DB_HOST=mysql:3306 -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress -e WORDPRESS_DB_NAME=wordpress -v "$PWD/wordpress":/var/www/html -d wordpress:latest

3. 创建PHP-FPM容器

docker run --name php-fpm --link mysql:mysql --link wordpress:wordpress -v "$PWD/wordpress":/var/www/html -d php:7.4-fpm

4. 创建Nginx容器

首先创建nginx.conf文件(同上),然后运行:

docker run --name nginx --link wordpress:wordpress --link php-fpm:php-fpm -p 80:80 -v "$PWD/nginx.conf":/etc/nginx/conf.d/default.conf -v "$PWD/wordpress":/var/www/html -d nginx:latest

访问WordPress

  1. 打开浏览器访问 http://localhost (如果使用自定义端口,如8000,则访问 http://localhost:8000)
  2. 按照WordPress安装向导完成安装

常见问题解决

1. 权限问题

如果遇到文件权限问题,可以执行:

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

2. 连接数据库失败

确保数据库容器已启动,并且WordPress容器中配置的环境变量正确。

3. Nginx 502错误

检查PHP-FPM容器是否正常运行,以及Nginx配置中fastcgi_pass是否正确指向PHP-FPM容器。

4. 修改配置后

修改配置后需要重启相关容器:

docker-compose restart nginx
# 或者手动方式
docker restart nginx

注意事项

  1. 生产环境中应使用更安全的密码
  2. 考虑添加数据备份策略
  3. 可以根据需要调整各服务的版本号
  4. 生产环境应考虑添加SSL证书

这种方法可以快速搭建一个WordPress环境,适合开发和测试使用。生产环境可能需要更复杂的配置和安全性考虑。