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

如何访问Docker容器中运行的Laravel项目?配置端口后仍无法访问

问题排查与解决

一、Apache配置问题(80端口访问失败)

你的Dockerfile里设置Apache工作目录为/var/www/html,但docker-compose把本地目录挂载到了/var/www,还将容器工作目录改成了/var/www。Apache默认从/var/www/html加载网站内容,现在Laravel在/var/www,Apache找不到入口文件public/index.php,自然访问失败。

解决方法二选一:

  • 调整挂载路径:修改docker-compose.yml,把本地目录挂载到/var/www/html,同步调整工作目录:
    services:
      dw2_apache_php:
        # 保留原有其他配置
        working_dir: /var/www/html
        volumes:
          - .:/var/www/html
    
  • 修改Apache站点配置:在Dockerfile中添加内容,让Apache指向Laravel的public目录(Laravel的入口目录),同时启用路由需要的重写模块:
    # 替换默认Apache站点配置
    RUN echo "<VirtualHost *:80>
        DocumentRoot /var/www/public
        <Directory /var/www/public>
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>" > /etc/apache2/sites-available/000-default.conf
    # 启用mod_rewrite
    RUN a2enmod rewrite
    

二、Laravel Artisan Serve(8000端口访问失败)

你只是给php artisan serve设置了别名,但容器启动后默认运行的是Apache,不会自动启动这个命令。另外,就算手动启动,php artisan serve默认只监听127.0.0.1,容器外部根本访问不到。

解决方法二选一:

  • 容器启动时自动运行:在docker-compose.yml中添加command字段,覆盖默认的Apache启动命令:
    services:
      dw2_apache_php:
        # 保留原有其他配置
        command: php artisan serve --host=0.0.0.0 --port=8000
    
    注意:这样容器只会运行artisan serve,Apache会被停止。
  • 手动进入容器启动:执行docker exec -it dw2_apache_php bash进入容器,再运行php artisan serve --host=0.0.0.0 --port=8000,之后就能通过localhost:8000访问。

三、权限问题(常见隐形坑)

本地目录挂载到容器后,Laravel的storage和bootstrap/cache目录需要Apache或PHP进程有写入权限,否则会出现500错误或页面加载失败。

解决方法:进入容器执行以下命令:

chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache
chmod -R 775 /var/www/storage /var/www/bootstrap/cache

四、验证步骤

  1. 重新构建镜像:docker-compose build
  2. 启动容器:docker-compose up -d
  3. 查看容器日志排查报错:docker-compose logs dw2_apache_php
  4. 测试访问:用Apache就访问localhost:80,用artisan serve就访问localhost:8000

内容的提问来源于stack exchange,提问作者Mauricio Silva Batista

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:07:08