必须用composer create-project laravel/laravel安装,不能用require;laravel 11需php≥8.2及mbstring、openssl、pdo等扩展,装完须运行php artisan --version和检查.env文件。

直接用 composer create-project laravel/laravel 就能装好,别碰 composer require laravel/framework——后者只扔个空包进 vendor/,没 artisan、没 routes/、没 app/,项目根本跑不起来。
确认 PHP 环境和扩展是否达标
Laravel 11 要求 PHP ≥ 8.2,Laravel 10 可用 PHP 8.0+,但缺一个扩展都会卡在安装或启动阶段。常见报错如 Class 'Mbstring' not found、ext-xml does not exist 或 RuntimeException: The use statement with aliasing is not allowed here(其实是 tokenizer 没开)。
- 运行
php -v看版本 - 运行
php -m | grep -E 'mbstring|openssl|pdo|tokenizer|xml|ctype|json|curl'确认全在列表里 - Windows 用户注意:XAMPP/MAMP 的 CLI PHP 和 Apache PHP 可能不是同一个,检查
php --ini输出的配置路径 - Mac 用户用 Homebrew 安装 PHP 后,确保
$(brew --prefix php)/bin在$PATH前面,否则终端调用的可能是系统旧版 PHP
执行 create-project 命令的正确写法
命令看着简单,但参数顺序、引号、版本格式错一个就失败。最常踩的坑是把 10 当成版本号直接写,结果 Composer 去找叫 laravel/laravel 10 的包。
- 装最新稳定版:
composer create-project laravel/laravel myapp - 装 Laravel 11:
composer create-project laravel/laravel myapp "11.*"(引号不能少,shell 会拆解*) - 装 Laravel 10:
composer create-project laravel/laravel myapp "10.*",不是v10.*,也不是10 - 加
--prefer-dist加速:composer create-project laravel/laravel myapp "11.*" --prefer-dist,避免 GitHub API 限流 - 项目名不能含空格或中文,
my app会失败,改用my-app或myapp
国内网络卡住或报 SSL/zlib 错误怎么办
“Loading composer repositories” 卡住、“Could not fetch packages”、“zlib_decode(): data error” 这些都不是 Laravel 的问题,而是 Composer 源或本地环境导致的。
- 先切阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 如果仍超时,临时关掉 HTTPS 强制(仅开发机):
composer config -g secure-http false - 遇到 SSL 证书错误(尤其 macOS M1/M2 + Homebrew PHP),运行
php -r "print_r(openssl_get_cert_locations());"看default_cert_file路径是否存在且可读 - 缓存损坏?跑一次
composer clear-cache再重试 - 别在已有
vendor/或非空目录里执行,会报Destination directory is not empty
装完必须立刻验证的两件事
很多人以为命令跑完就万事大吉,结果访问白屏、artisan 报错、APP_KEY 缺失,其实只是漏了两个关键检查点。
- 进项目目录,立刻跑
php artisan --version,输出类似Laravel Framework 11.9.2才算骨架和自动加载真正就位;如果报Command "serve" is not defined,说明vendor/autoload.php没生成或没加载,大概率是安装中断或权限问题(比如用了sudo composer导致vendor/归属 root) - 检查
.env是否存在且可写,Laravel 10/11 的create-project会自动生成它,但如果磁盘满、权限紧或安装被 Ctrl+C 中断,这个文件可能为空或缺失;没有它,php artisan key:generate会失败,后续所有请求都抛No application encryption key has been specified
最易被忽略的是:安装过程看似完成,但 vendor/autoload.php 没写入成功,或 .env 文件权限为只读,这类问题不会在终端报错,却会让后续所有 Artisan 命令和 Web 请求静默失败。











