You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Docker将Symfony项目的public目录设为Web服务器根目录

解决Docker中Symfony根目录指向问题

要让Web服务器直接指向/var/www/html/public且保持项目文件结构不变,核心是修改Web服务器的根目录配置,以下分两种常见环境给出操作步骤:

Apache环境(基于php-apache镜像)

  • 项目根目录新建apache.conf配置文件:
    <VirtualHost *:80>
        DocumentRoot /var/www/html/public
        <Directory /var/www/html/public>
            AllowOverride All
            Require all granted
            DirectoryIndex index.php
        </Directory>
    </VirtualHost>
    
  • 修改项目的Dockerfile,替换默认Apache站点配置并启用rewrite模块:
    FROM php:8.2-apache
    # 保留你原有的依赖安装命令(如composer、PHP扩展等)
    COPY apache.conf /etc/apache2/sites-available/000-default.conf
    RUN a2enmod rewrite
    
  • 重新构建镜像并启动容器:
    docker-compose up --build
    

Nginx环境(搭配php-fpm镜像)

  • 项目根目录新建nginx.conf配置文件:
    server {
        listen 80;
        root /var/www/html/public;
        index index.php index.html;
    
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ \.php$ {
            fastcgi_pass php:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
  • 调整Docker Compose配置,新增Nginx服务并修改php服务为fpm镜像:
    version: '3'
    
    services:
      php:
        container_name: php
        depends_on:
          - db
        build: .
        volumes:
          - .:/var/www/html
        restart: always
      nginx:
        container_name: nginx
        image: nginx:alpine
        depends_on:
          - php
        volumes:
          - .:/var/www/html
          - ./nginx.conf:/etc/nginx/conf.d/default.conf
        ports:
          - "8001:80"
        restart: always
    
  • 注意:php的Dockerfile要基于php:8.2-fpm镜像,同时安装Symfony所需的PHP扩展。

完成后访问http://localhost:8001即可直接进入Symfony项目首页,你之前找的术语就是Web服务器根目录配置,对应Apache的DocumentRoot或Nginx的root指令。

内容的提问来源于stack exchange,提问作者Orange Lux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:06:24