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

如何在Docker中让Laravel应用直接通过端口访问而非/public路径?

解决Laravel Docker容器直接访问根目录403的问题

问题核心是Apache默认将/var/www/html作为网站根目录,但Laravel的入口文件index.php位于public子目录下,导致直接访问根目录时Apache无法找到正确的入口文件,从而返回403 Forbidden错误。以下是两种可行的解决方法:

方法一:通过Dockerfile修改Apache配置(推荐)

该方法会将Apache配置固化到镜像中,无需每次启动容器重复修改。

  1. 修改Dockerfile,在RUN a2enmod rewrite之后添加以下配置:

    # 替换Apache默认站点配置,将DocumentRoot指向Laravel的public目录
    RUN sed -i 's/\/var\/www\/html/\/var\/www\/html\/public/g' /etc/apache2/sites-available/000-default.conf
    
    # 调整Apache主配置中的Directory路径,确保public目录权限与Rewrite规则生效
    RUN sed -i '/<Directory \/var\/www\/html\/>/,/<\/Directory>/ s/\/var\/www\/html/\/var\/www\/html\/public/' /etc/apache2/apache2.conf
    

    若需要更灵活的配置,可自定义Apache配置文件:

    • 在项目根目录创建apache文件夹,新建laravel.conf文件,内容如下:
      <VirtualHost *:80>
          ServerAdmin webmaster@localhost
          DocumentRoot /var/www/html/public
      
          <Directory /var/www/html/public>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Require all granted
          </Directory>
      
          ErrorLog ${APACHE_LOG_DIR}/error.log
          CustomLog ${APACHE_LOG_DIR}/access.log combined
      </VirtualHost>
      
    • 在Dockerfile中添加复制配置的命令:
      # 复制自定义Apache配置文件替换默认配置
      COPY apache/laravel.conf /etc/apache2/sites-available/000-default.conf
      
  2. 重新构建镜像并启动容器:

    docker-compose build inventory
    docker-compose up -d
    

方法二:通过docker-compose.yml临时修改配置

若不想重新构建镜像,可在容器启动时动态修改Apache配置:

在docker-compose.yml的inventory服务中添加command字段:

services:
  inventory:
    container_name: laravel-app
    build: .
    volumes:
      - ./laravel-app:/var/www/html
    ports:
      - 9000:80
    command: >
      bash -c "sed -i 's/\/var\/www\/html/\/var\/www\/html\/public/g' /etc/apache2/sites-available/000-default.conf && apache2-foreground"

重启容器:

docker-compose up -d

验证结果

完成上述配置后,访问localhost:9000即可直接显示Laravel应用首页,无需添加/public路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:50:34