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

Docker部署Symfony无法显示启动页 报Composer文件找不到错误

Docker部署Symfony路径配置修正方案

核心问题

你当前配置的核心错误是本地Symfony项目代码未正确挂载到php-fpm、nginx容器的对应工作目录,导致Composer在默认的/var/www路径下找不到项目的composer.json文件,同时Nginx也无法匹配到Symfony的入口文件。

具体修正步骤

1. 修改docker-compose.yml的挂载配置

假设你的Symfony项目代码存放在宿主机当前目录的api文件夹下(和docker目录同级,包含composer.json),需要将该目录挂载到两个服务的/var/www路径:

  • 找到php-fpm服务的volumes配置,替换原有的- /api为:
volumes:
  - ./api:/var/www:rw,cached
  • 找到nginx服务的volumes配置,替换原有的- /api为:
volumes:
  - ./api:/var/www:rw,cached
  - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
  - ./docker/nginx/sites/:/etc/nginx/sites-available
  - ./docker/nginx/conf.d/:/etc/nginx/conf.d
  - ./docker/logs:/var/log

可选优化:在docker/php-fpm/Dockerfile中添加WORKDIR /var/www,指定php容器的默认工作目录

2. 调整Nginx站点配置

Symfony的入口文件存放在项目根目录下的public文件夹中,需要在docker/nginx/sites/下的站点配置文件(一般为default.conf)中指定正确的根路径,参考配置如下:

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

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

    location ~ ^/index\.php(/|$) {
        fastcgi_pass php-fpm: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;
    }
}

3. 重启容器生效

修改完成后执行以下命令重建容器:
docker-compose down && docker-compose up -d --build
容器启动完成后访问localhost即可看到Symfony默认启动页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:06:07