laravel 13 不支持 laravel/installer,唯一可靠方式是 composer create-project laravel/laravel myproject --stability=stable --prefer-dist --no-interaction,需 php 8.3+、手动复制 .env.example 为 .env、生成密钥并确保 storage 和 bootstrap/cache 可写。

Laravel 13 不支持“一键安装包”方式安装,官方已彻底弃用 laravel/installer 对 v13+ 的支持,强行使用会报错或生成不兼容项目。 直接下载 GitHub 上的 laravel/laravel 模板 ZIP 或 clone 仓库,再手动 composer install 是当前唯一可靠路径 —— 但这个过程容易卡在权限、PHP 版本、.env 缺失等环节。
为什么 laravel new 在 Laravel 13 上失效
从 Laravel 13 开始(2025 年 2 月发布),官方移除了对全局 laravel/installer 的适配。执行 laravel new myapp 会提示:
Could not find package laravel/laravel in a version matching 13.*
根本原因是:laravel/installer 的最新稳定版(v4.x)只支持到 Laravel 12;Laravel 13 要求 PHP 8.3+,且依赖结构变更(如内置 laravel/ai、laravel/json-api-resources),旧 installer 无法解析新 composer.json 约束。
正确创建 Laravel 13 项目的命令链
必须用 Composer 直接拉取官方模板,并跳过旧版 installer 中间层。关键点是:指定精确版本号 + 强制 PHP 8.3 兼容模式:
- 确保已安装
composer(v2.7+)和 PHP 8.3+(运行php -v确认) - 执行以下命令(替换
myproject为你的项目名):composer create-project laravel/laravel myproject --stability=stable --prefer-dist --no-interaction
- 如果报
Your requirements could not be resolved,说明本地 PHP 版本低于 8.3,需先升级(推荐用brew install php@8.3+brew link php@8.3) - 项目生成后,
cd myproject,立刻运行:php artisan key:generate
(否则php artisan serve会报No application encryption key has been specified)
.env 文件缺失导致 key:generate 失败
常见错误:
[ErrorException] file_get_contents(/path/to/myproject/.env): failed to open stream: No such file or directory这是因为 Laravel 13 默认不再自动生成
.env —— 它只复制 .env.example。必须手动初始化:
- 运行
cp .env.example .env(注意不是mv,保留原示例文件) - 再执行
php artisan key:generate,此时会成功写入APP_KEY - 若仍报权限错误(尤其在
/usr/local/bin下用sudo安装过 composer),改用当前用户权限运行:php -d memory_limit=-1 artisan key:generate
(避免因内存限制中断)
启动服务前必须检查的三项
Laravel 13 的内置服务器(php artisan serve)比旧版更严格,漏掉任一条件都会静默失败或白屏:
-
storage/和bootstrap/cache/目录需可写:chmod -R 775 storage bootstrap/cache
- 确认
APP_URL在.env中设为http://localhost:8000(不能是127.0.0.1,否则 Vite HMR 会断连) - 首次启动建议加端口参数:
php artisan serve --port=8000
(避免被其他进程占用,默认端口可能冲突)
真正麻烦的不是安装步骤本身,而是 Laravel 13 把很多“默认行为”变成了显式约束 —— 比如不再自动创建 .env、不再容忍低版本 PHP、storage 权限校验更硬。这些不是 bug,是设计选择,但意味着你不能再靠记忆中的老流程走完全程。











