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

Laravel项目Docker运行缓慢,Windows本地启动路由404求助

Laravel项目问题排查方案

一、php artisan serve 路由全404问题

  1. 核对路由注册情况
    运行php artisan route:list,检查输出的路由URI、请求方法是否与你访问的地址完全匹配,注意是否存在路由前缀、域名限制等规则。
  2. 修正APP_URL配置
    打开项目根目录的.env文件,确保APP_URL与你访问的地址一致(例如http://localhost:8000),Laravel路由生成依赖该配置,尤其是命名路由跳转场景。
  3. 验证核心入口文件
    检查public/index.php的核心引用是否正确:
    require __DIR__.'/../vendor/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/app.php';
    
  4. 排查中间件拦截
    临时注释全局中间件(app/Http/Kernel.php中的$middleware数组)或路由绑定的中间件,测试是否因中间件逻辑(如HTTPS强制跳转、IP限制)导致请求被拦截。
  5. 确认路由加载逻辑
    检查bootstrap/app.php是否正确注册了路由服务,是否存在仅加载特定环境路由的自定义逻辑。

二、Docker运行缓慢问题优化

  1. 调整Docker资源分配
    打开Docker Desktop设置,分配至少2核CPU、4GB内存,默认资源配额不足会导致Laravel启动及运行卡顿。
  2. 优化镜像与挂载
    • 使用轻量级基础镜像(如php:8.2-fpm-alpine替代php:8.2-fpm),减少镜像体积与启动时间。
    • 将项目存储在WSL2文件系统中,再通过Docker挂载WSL目录,避免Windows本地目录挂载的性能损耗。
  3. 启用缓存优化(生产环境适用)
    在容器内执行:
    php artisan config:cache
    php artisan route:cache
    
    开发环境频繁修改配置/路由时请勿使用。

三、WSL2连接XAMPP MySQL失败问题

  1. 修改MySQL绑定地址
    打开XAMPP的my.ini(或my.cnf),将bind-address改为0.0.0.0,重启MySQL服务。
  2. 配置防火墙与访问权限
    • 允许Windows防火墙放行MySQL默认端口(3306),或临时关闭防火墙测试。
    • 在MySQL中授权用户跨IP访问:
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码';
      FLUSH PRIVILEGES;
      
  3. 配置正确的DB_HOST
    在WSL2终端执行cat /etc/resolv.conf,获取nameserver对应的Windows IP,将Laravel.env中的DB_HOST设置为该IP,而非localhost或127.0.0.1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:54:50