插件窝 干货文章 使用Docker快捷安装Symfony

使用Docker快捷安装Symfony

Docker Symfony Compose nginx 69    来源:    2025-04-10

使用Docker快速安装Symfony

Symfony是一个流行的PHP框架,使用Docker可以快速搭建开发环境。以下是使用Docker安装Symfony的步骤:

方法一:使用官方Docker镜像

  1. 安装Docker:确保已安装DockerDocker Compose

  2. 创建Symfony项目

    docker run --rm -v $(pwd):/app composer create-project symfony/skeleton:"6.4.*" my_project
    
  3. 进入项目目录

    cd my_project
    
  4. 创建Docker Compose文件: 创建docker-compose.yml文件,内容如下:

    version: '3.8'
    
    services:
     app:
       image: php:8.2-fpm
       volumes:
         - .:/var/www/html
       working_dir: /var/www/html
       depends_on:
         - db
    
     db:
       image: mariadb:10.6
       environment:
         MYSQL_ROOT_PASSWORD: root
         MYSQL_DATABASE: symfony
         MYSQL_USER: symfony
         MYSQL_PASSWORD: symfony
       ports:
         - "3306:3306"
    
     nginx:
       image: nginx:alpine
       ports:
         - "8080:80"
       volumes:
         - .:/var/www/html
         - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
       depends_on:
         - app
    
  5. 创建Nginx配置文件: 创建docker/nginx.conf文件:

    server {
       listen 80;
       server_name localhost;
       root /var/www/html/public;
    
       location / {
           try_files $uri /index.php$is_args$args;
       }
    
       location ~ ^/index\.php(/|$) {
           fastcgi_pass app: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;
       }
    
       error_log /var/log/nginx/project_error.log;
       access_log /var/log/nginx/project_access.log;
    }
    
  6. 启动容器

    docker-compose up -d
    
  7. 访问应用: 打开浏览器访问 http://localhost:8080

方法二:使用Symfony Docker

Symfony官方提供了一个更完整的Docker解决方案:

  1. 克隆Symfony Docker仓库

    git clone https://github.com/dunglas/symfony-docker
    
  2. 创建Symfony项目

    cd symfony-docker
    docker-compose build
    docker-compose up -d
    
  3. 创建新Symfony应用

    docker-compose exec php symfony new --full my_project
    
  4. 访问应用: 打开浏览器访问 http://localhost:8000

常见问题解决

  1. 权限问题

    sudo chown -R $USER:$USER .
    
  2. 安装额外扩展: 编辑Dockerfile添加:

    RUN docker-php-ext-install pdo pdo_mysql
    
  3. 清除缓存

    docker-compose exec php bin/console cache:clear
    
  4. 查看日志

    docker-compose logs -f
    

这样你就有了一个完整的Symfony开发环境,包含PHP、Nginx和MySQL数据库。