插件窝 干货文章 Docker安装Symfony的教程:快速搭建开发环境

Docker安装Symfony的教程:快速搭建开发环境

Symfony Docker PHP Compose 912    来源:    2025-04-10

Docker安装Symfony:快速搭建开发环境教程

Symfony是一个流行的PHP框架,使用Docker可以快速搭建开发环境,避免本地环境配置的复杂性。以下是使用Docker安装Symfony的详细步骤。

准备工作

  1. 确保已安装Docker和Docker Compose
  2. 确保已安装Git(用于Composer)

方法一:使用Symfony CLI(推荐)

1. 安装Symfony CLI

curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | sudo sh
sudo apk add symfony-cli

对于其他系统,请参考Symfony官方文档

2. 创建新Symfony项目

symfony new my_project --webapp

--webapp选项会安装一个带有Web配置的Symfony应用(包含前端资产)

3. 进入项目目录

cd my_project

4. 启动Docker环境

symfony server:start -d

方法二:手动配置Docker环境

1. 创建Symfony项目

composer create-project symfony/skeleton:"6.4.*" my_project
cd my_project

2. 创建Docker相关文件

创建docker-compose.yaml文件:

version: '3.8'

services:
  web:
    image: nginx:alpine
    ports:
      - "8080:80"
    volumes:
      - ./:/var/www/html
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php

  php:
    build:
      context: .
      dockerfile: docker/php/Dockerfile
    volumes:
      - ./:/var/www/html
    environment:
      - APP_ENV=dev

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: symfony
      MYSQL_USER: symfony
      MYSQL_PASSWORD: symfony
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

创建docker/nginx.conf文件:

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/public;

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

    location ~ ^/index\.php(/|$) {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }
}

创建docker/php/Dockerfile文件:

FROM php:8.2-fpm

RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/html

3. 启动Docker容器

docker-compose up -d

4. 安装依赖

docker-compose exec php composer install

验证安装

访问 http://localhost:8080 应该能看到Symfony欢迎页面。

常用命令

  • 停止容器:docker-compose down
  • 查看运行中的容器:docker-compose ps
  • 进入PHP容器:docker-compose exec php bash
  • 清除缓存:docker-compose exec php bin/console cache:clear

数据库配置

如果需要使用数据库,修改.env文件:

DATABASE_URL="mysql://symfony:symfony@db:3306/symfony?serverVersion=5.7"

然后运行迁移:

docker-compose exec php bin/console doctrine:migrations:migrate

注意事项

  1. 确保Docker有足够的内存分配(至少2GB)
  2. 首次启动可能需要一些时间下载镜像
  3. 在Windows/Mac上,确保文件共享已启用
  4. 开发模式下建议启用Xdebug进行调试

这样你就有了一个完整的Symfony开发环境,可以开始你的项目开发了!