插件窝 干货文章 Docker快速安装Symfony框架的步骤与指南

Docker快速安装Symfony框架的步骤与指南

Docker Symfony Compose mysql 559    来源:    2025-04-10

Docker 快速安装 Symfony 框架指南

概述

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

前提条件

  • 已安装 Docker 和 Docker Compose
  • 基本的命令行操作知识

安装步骤

1. 创建项目目录

mkdir symfony-docker-project
cd symfony-docker-project

2. 创建 Docker Compose 文件

创建 docker-compose.yml 文件:

version: '3.8'

services:
  php:
    image: php:8.2-fpm
    container_name: symfony_php
    working_dir: /var/www
    volumes:
      - ./:/var/www
    depends_on:
      - mysql
      - redis

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

  mysql:
    image: mysql:8.0
    container_name: symfony_mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: symfony
      MYSQL_USER: symfony
      MYSQL_PASSWORD: symfony
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  redis:
    image: redis:alpine
    container_name: symfony_redis
    ports:
      - "6379:6379"

  composer:
    image: composer:2
    container_name: symfony_composer
    volumes:
      - ./:/var/www
    working_dir: /var/www
    entrypoint: ['composer']

volumes:
  mysql_data:

3. 创建 Nginx 配置文件

创建 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/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;
    }
}

4. 创建 Symfony 项目

运行以下命令创建新的 Symfony 项目:

docker-compose run --rm composer create-project symfony/skeleton .

5. 启动容器

docker-compose up -d

6. 安装 Symfony Web 应用包(可选)

如果需要完整 Web 应用功能,可以安装:

docker-compose run --rm composer require webapp

7. 访问应用

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

常用命令

  • 停止容器docker-compose down
  • 查看运行中的容器docker-compose ps
  • 进入 PHP 容器docker-compose exec php bash
  • 运行 Composer 命令docker-compose run --rm composer [command]
  • 查看日志docker-compose logs [service]

配置数据库连接

编辑 .env 文件:

DATABASE_URL="mysql://symfony:symfony@mysql:3306/symfony?serverVersion=8.0"

常见问题解决

  1. 权限问题

    sudo chown -R $USER:$USER .
    
  2. 端口冲突: 修改 docker-compose.yml 中的端口映射

  3. PHP 扩展缺失: 创建自定义 Dockerfile 或使用 docker-php-ext-install 安装所需扩展

  4. 缓存目录不可写

    docker-compose exec php chmod -R 777 var/
    

结论

使用 Docker 安装 Symfony 可以快速搭建一致的开发环境,避免"在我机器上能运行"的问题。这种方法特别适合团队协作和持续集成环境。