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

Laradock中Apache2访问项目文件出现404 Not Found问题求助

Laradock中Apache2访问公开文件出现404的排查方向

问题背景

本地目录结构:

--docker
     --laradock
     --demo
        --project_a
            --public
        --project_b
            --public  
        --project_c
            --public

对应访问域名:projecta.test、projectb.test、projectc.test,Apache相关配置文件如提供内容所示。

以下是可能导致404错误的原因及排查方法:

  • 目录挂载未正确配置
    Laradock容器内的/var/www/demo必须映射到宿主机的docker/demo目录,否则容器根本找不到项目文件。
    检查laradock/docker-compose.yml中apache服务的volumes配置,需包含类似条目:

    volumes:
      - ../demo:/var/www/demo
    

    若挂载路径错误或缺失,容器内无法访问/var/www/demo/project_a/public,直接返回404。

  • 虚拟主机配置未加载
    确认projecta.conf等站点配置文件已被正确加载到Apache容器中:

    1. 检查Laradock的Apache设置,确认laradock/apache2/sites/下的.conf文件是否被挂载或复制到容器的/etc/apache2/sites/目录;
    2. 虽然vhost.conf配置了Include /etc/apache2/sites/*.conf,但如果容器内没有对应的.conf文件,Apache无法识别projecta.test的虚拟主机,会走默认站点导致404。
  • 文件/目录权限不足
    Apache进程以www-data用户运行,若容器内项目目录或文件权限不允许该用户访问,会返回404:

    1. 进入Apache容器:docker exec -it laradock-apache-1 bash;
    2. 查看目录权限:ls -l /var/www/demo/project_a/;
    3. 若权限不足,执行chown -R www-data:www-data /var/www/demo调整所有者,或设置目录权限为755、文件权限为644。
  • 本地DNS解析错误
    若本地hosts文件未正确配置域名映射,访问请求可能未指向Laradock的Apache服务:
    在hosts文件中添加以下内容:

    127.0.0.1 projecta.test
    127.0.0.1 projectb.test
    127.0.0.1 projectc.test
    
    • Windows路径:C:\Windows\System32\drivers\etc\hosts
    • macOS/Linux路径:/etc/hosts
  • Apache配置语法错误
    虚拟主机配置文件存在语法错误时,Apache无法加载该配置,会使用默认站点:
    进入Apache容器执行命令检查配置:

    apache2ctl configtest
    

    根据提示修正语法错误后重启Apache服务。

  • 默认站点冲突
    若容器内存在启用的默认站点(如000-default.conf),可能优先匹配该站点,导致自定义虚拟主机配置不生效:
    检查容器内/etc/apache2/sites-enabled/目录,确认默认站点已被禁用,或projecta.conf已被正确启用(可通过a2ensite projecta.conf命令启用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:45:39