插件窝 干货文章 Docker如何快速搭建PHP+Nginx+Mysql环境

Docker如何快速搭建PHP+Nginx+Mysql环境

MySQL Docker PHP Nginx 210    来源:    2025-04-25

Docker快速搭建PHP+Nginx+MySQL环境指南

使用Docker可以非常方便地搭建PHP+Nginx+MySQL开发环境。以下是详细的搭建步骤:

1. 准备工作

确保已安装Docker和Docker Compose:

docker --version
docker-compose --version

如果没有安装,请先安装DockerDocker Compose

2. 创建项目目录结构

mkdir php-nginx-mysql
cd php-nginx-mysql
mkdir app nginx mysql

3. 创建docker-compose.yml文件

version: '3'

services:
  # PHP服务
  php:
    image: php:8.2-fpm
    container_name: php-fpm
    volumes:
      - ./app:/var/www/html
    networks:
      - app-network

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

  # MySQL服务
  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: app_db
      MYSQL_USER: app_user
      MYSQL_PASSWORD: userpassword
    volumes:
      - ./mysql:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - app-network

# 定义网络
networks:
  app-network:
    driver: bridge

4. 创建Nginx配置文件

nginx目录下创建nginx.conf文件:

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html;

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

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

5. 创建PHP测试文件

app目录下创建index.php文件:

<?php
phpinfo();

// 测试MySQL连接
try {
    $conn = new PDO("mysql:host=mysql;dbname=app_db", "app_user", "userpassword");
    echo "MySQL连接成功!";
} catch(PDOException $e) {
    echo "MySQL连接失败: " . $e->getMessage();
}
?>

6. 启动服务

docker-compose up -d

7. 访问测试

打开浏览器访问:http://localhost:8080

8. 常用命令

  • 停止服务:docker-compose down
  • 查看运行中的容器:docker ps
  • 进入PHP容器:docker exec -it php-fpm bash
  • 进入MySQL容器:docker exec -it mysql mysql -u app_user -p (密码: userpassword)

可选扩展

如果需要额外的PHP扩展,可以创建自定义Dockerfile:

  1. 创建Dockerfile
FROM php:8.2-fpm
RUN docker-php-ext-install pdo pdo_mysql
  1. 修改docker-compose.yml中的php服务部分:
php:
  build: .
  container_name: php-fpm
  volumes:
    - ./app:/var/www/html
  networks:
    - app-network

这样就完成了一个基本的PHP+Nginx+MySQL环境的搭建。你可以根据项目需求进一步定制配置。