composer create-project 命令的版本号必须用引号包裹(如 "10.*" 或 "^10.0"),否则 shell 会错误解析 * 或 ^;推荐写法是 composer create-project laravel/laravel myapp "10.*",且需确保 php ≥ 8.2 并启用 mbstring、tokenizer 等扩展,禁用已过时的 laravel/installer。

composer create-project 命令必须带引号包裹版本号
不加引号时,shell 会把 ^10.0 或 10.* 当作通配符或重定向符号解析,导致命令报错或装错版本。比如写成 composer create-project laravel/laravel myapp 10.*,实际可能匹配到本地文件名,而非 Laravel 版本约束。
正确写法只有两种:composer create-project laravel/laravel myapp "10.*" 或 composer create-project laravel/laravel:^10.0 myapp。前者是推荐方式,后者要求包名和版本写在同一参数里,且不能漏掉 ^ 符号——只写 10.0 会被当成精确版本,而 Packagist 上没有叫 10.0 的 tag。
-
"10.*"和"^10.0"效果等价,都匹配 Laravel 10.x 最新补丁版 - 想装 Laravel 11?用
"11.*",别写11或v11,Laravel 官方不打v前缀 tag - 如果提示
Could not find package laravel/laravel,大概率是镜像源没同步新版本,临时切回官方源:composer config -g repo.packagist composer https://packagist.org
vendor/autoload.php 不存在?不是安装失败,是没走完流程
执行完 composer create-project 后进项目目录跑 ls -l vendor/autoload.php,发现文件不存在——这不是命令失败,而是 Composer 没自动执行依赖安装。常见于 CI 环境、Docker 构建或误加了 --no-install 参数。
此时不能直接 composer require 补依赖,那会破坏 Laravel 骨架预设的 autoload 规则和脚本钩子(比如 @php artisan package:discover)。
- 先确认是否真没装:进项目目录运行
composer install --no-interaction - 如果报
Destination directory is not empty,说明你在已有vendor/或.env的目录下重复执行了命令,删掉整个项目目录重来 - 装完立刻验证:运行
php artisan tinker,能进入交互式控制台就代表 autoloader 工作正常
PHP 版本和扩展缺失,错误信息根本不提 Laravel
Laravel 11 要求 PHP ≥ 8.2,且强制依赖 mbstring、openssl、pdo、tokenizer、xml、ctype、json 这些扩展。缺任何一个,create-project 可能中途静默退出,或后续 php artisan 报看似无关的错误,比如:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
RuntimeException: The use statement with aliasing is not allowed here→ 实际是tokenizer没启用 -
Class 'Illuminate\Foundation\Application' not found→ 多半是mbstring或xml缺失,autoload 加载失败 - Windows 下用 XAMPP/MAMP,得手动打开
php.ini,取消;extension=mbstring这类行前的分号
检查方法很简单:php -v 看版本,php -m | grep -E 'mbstring|tokenizer|xml' 看模块是否在列表里。
别碰 laravel/installer,它已过时且易冲突
全局安装 laravel/installer(composer global require laravel/installer)曾经是主流做法,但现在官方已弃用。它生成的项目结构和脚本钩子与当前 Laravel 主干不一致,尤其在 Laravel 11+ 中容易导致 artisan 命令找不到、密钥生成失败或 .env 模板缺失。
真正可靠的方式只有一条命令:composer create-project laravel/laravel myapp "11.*"。它会自动完成:
- 下载骨架代码
- 执行
composer install - 生成
.env并运行php artisan key:generate - 设置好 autoload 和 post-root-package-install 钩子
如果你之前装过 laravel/installer,建议先卸载:composer global remove laravel/installer,避免未来命令混淆。










