laravel new 命令在 windows 上失败主因是 php 扩展缺失(尤其 intl、opcache)、composer 镜像卡死及 app_key 未生成;需检查 php ≥8.2、启用必需扩展、换国内镜像、生成 app_key、正确配置 .env 并清缓存后启动。

laravel new 命令在 Windows 上大概率会失败——不是 Laravel 本身的问题,而是 PHP 扩展缺失、Composer 镜像卡死、或 APP_KEY 未生成这三类问题叠加导致的。
检查 PHP 版本和必需扩展是否就位
Laravel 11(当前最新稳定版)要求PHP >= 8.2,且必须启用 mbstring、openssl、pdo、tokenizer、xml、ctype、json、intl。Windows 用户特别容易漏掉 intl 和 opcache:前者缺失会导致 composer create-project 卡在依赖解析;后者没开会让 php artisan serve 启动慢几秒甚至超时。
- 运行
php -v确认版本 ≥ 8.2 - 运行
php -m查看已加载模块,逐个核对上面列表 - 缺
intl?打开php.ini,取消注释extension=php_intl.dll(注意不是php_mbstring.dll) - 缺
opcache?取消zend_extension=php_opcache.dll行的注释,并确保它在所有extension=之前
换国内镜像 + 关闭安全 HTTP 强制校验
GitHub 源在大陆访问不稳定,composer create-project laravel/laravel 经常卡在 “Resolving packages…” 或直接报 zlib_decode(): data error(压缩包损坏)。这不是网络波动,是 Composer 默认源返回了不完整响应。
- 全局配置国内镜像:
composer config -g repo.packagist composer @#@#@#@#@#@#@#@#@#@0+(这是 Packagist 官方推荐的中国加速节点) - 若仍报 SSL 错误或连接重置,临时关闭强制 HTTPS:
composer config -g secure-http false - 遇到内存不足提示(如
Allowed memory size exhausted):COMPOSER_MEMORY_LIMIT=-1 composer create-project laravel/laravel myapp
.env 里这三个值不手动改,项目根本跑不起来
新项目生成后,.env 是模板文件,不能直接用。其中三项填错,会导致首页白屏、路由 404、登录态丢失等“看起来正常但实际失效”的问题:
-
APP_KEY必须执行php artisan key:generate生成,不能手输、不能复制旧项目值、不能留空 -
DB_DATABASE填的是数据库名(如homestead),不是用户名;MySQL root 默认无密码,但DB_PASSWORD字段必须为空字符串(即=),不能写null或删掉整行 -
APP_URL开发时务必设为@#@#@#@#@#@#@#@#@#@1,别用@#@#@#@#@#@#@#@#@#@2——Chrome 把localhost和 IP 当作不同源,CSRF token 和邮箱链接会失效
启动前清缓存,否则改了也白改
Laravel 会把配置、路由、视图编译结果缓存到bootstrap/cache/ 下。哪怕你刚改完 .env 并运行了 key:generate,如果没清缓存,php artisan serve 仍然读的是旧配置。
- 进入项目根目录后,依次执行:
php artisan config:clearphp artisan cache:clearphp artisan view:clear - 然后再运行
php artisan serve,浏览器访问@#@#@#@#@#@#@#@#@#@1
最常被跳过的其实是 php artisan config:clear —— 它不报错,但也不生效,你只能看着首页 404,然后反复怀疑是不是路由写错了。











