必须用composer create-project指定版本约束(如^8.0或9.52.16)安装laravel,不可依赖laravel/installer;需确认版本存在于packagist,加--prefer-dist加速,并通过php artisan -v和composer show验证版本一致性。

要在项目中精确控制 Laravel 框架版本,避免因自动升级导致依赖冲突或语法报错,必须跳过 laravel/installer 工具,直接用 Composer 的 create-project 命令指定版本约束——这是官方推荐且唯一能可靠锁定旧版(如 7.x、8.x、9.x)的安装路径,不这样做,新建项目大概率会装上 Laravel 11。
用 create-project 安装指定 Laravel 版本
第一步:打开终端,进入你希望创建项目的父目录(例如 ~/Sites 或 D:\www),确保当前没有同名文件夹存在。
第二步:执行命令,格式为 composer create-project laravel/laravel:^X.Y project-name,其中 ^X.Y 表示兼容该主次版本的最新小版本。例如安装 Laravel 8.x 系列最新版:composer create-project laravel/laravel:^8.0 myapp。
第三步:若需精确安装某一个补丁版本(比如线上环境要求严格匹配 9.52.16),去掉脱字符,直接写全版本号:composer create-project laravel/laravel:9.52.16 myapp。这一步会强制拉取 Packagist 上已发布的对应 tag,【必须确认该版本真实存在于 https://packagist.org/packages/laravel/laravel】,否则命令会失败并提示“Could not find package”。
第四步:加 --prefer-dist 参数可加速安装,它优先使用压缩包而非 Git 克隆:composer create-project laravel/laravel:^10.0 myapp --prefer-dist。如果网络不稳定或国内访问慢,建议提前切阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。
为什么不能用 laravel/installer 指定版本
方法一:全局安装 laravel/installer 后运行 laravel new myapp —— 该命令【不接受任何版本参数】,新版 installer(v4.4+)默认只创建 Laravel 11,无法回退。
方法二:尝试降级 laravel/installer 再执行,例如 composer global require laravel/installer:^3.0 —— 这种做法极不可靠,因为旧版 installer 对 Laravel 5.5–6.x 的支持早已失效,且底层仍调用 create-project,纯属多绕一层。
验证安装结果是否符合预期
进入项目根目录:cd myapp。
运行 php artisan -V 查看实际版本号,输出应为类似 Laravel Framework 8.83.27 的格式。
检查 vendor/laravel/framework/composer.json 中的 version 字段,或直接运行 composer show laravel/framework,确认显示的版本与你指定的约束完全一致。











