Laravel 10+ 要求 PHP ≥ 8.1 且必须启用 mbstring、openssl、pdo_mysql、fileinfo、xml、tokenizer、ctype、json 扩展,缺一则 composer create-project 可能卡住或静默失败;需用 php -m 验证真实加载,非仅 php -v。

php 版本必须 ≥ 8.1,且 mbstring、openssl、pdo_mysql、fileinfo、xml、tokenizer、ctype、json 这些扩展一个都不能少——缺任何一个,composer create-project 都可能卡在依赖解析或安装中途,不是报错就是静默失败。
检查 PHP 版本和必需扩展是否启用
只运行 php -v 不够,得确认扩展真实加载了:
- Linux/macOS:执行
php -m | grep -E "(mbstring|openssl|pdo_mysql|fileinfo|xml|tokenizer|ctype|json)",每项都应有输出 - Windows:运行
php -m后手动翻找,或用php --ini找到php.ini路径,再确认对应extension=xxx行未被注释 - Mac 用户用 Homebrew 安装
php@8.2通常带全扩展,但务必用which php确认终端调用的是 brew 版本,而非系统自带老 PHP - Ubuntu/Debian 缺
intl(Laravel 10+ 实际需要)?补装:sudo apt install php-intl
Composer 必须配国内镜像源才跑得通
不换源,composer create-project laravel/laravel myapp 极易卡在 Installing dependencies 或直接超时。GitHub 原源对国内不稳定,尤其 Laravel 10+ 的 vendor 目录超 150MB。
- 全局配置阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否生效:
composer config -g repo.packagist应输出镜像地址 - 若已卡住,
Ctrl+C中断后重试;别硬等 - 内存不足提示 zlib_decode 错误?删缓存:
rm -rf ~/.composer/cache,再加COMPOSER_MEMORY_LIMIT=-1重试
php artisan serve 启动失败的常见原因
报 Could not open input file: artisan?说明不在项目根目录(即含 artisan 文件的那层),或当前用户无读取权限(Linux/macOS 下偶发)。
- 端口被占:默认
:8000,换端口即可,例如:php artisan serve --port=8001 -
.env缺失或APP_KEY为空:页面能打开,但 session、CSRF、加密功能全失效——务必运行php artisan key:generate - 该命令只在
.env存在且APP_KEY=为空时才写入密钥;若.env根本不存在,先复制.env.example并重命名
数据库连不通?先盯死 .env 里这三行
php artisan migrate 报 SQLSTATE[HY000] [1045] Access denied,90% 是 .env 配错了,不是 MySQL 密码本身不对。
-
DB_USERNAME=root没问题,但DB_PASSWORD=必须留空(Laragon/XAMPP 默认 root 无密码),不能填root或null -
DB_DATABASE填的是数据库名(如laravel),不是用户名;首次迁移前需手动在 MySQL 里CREATE DATABASE laravel; -
APP_URL=http://localhost:8000必须设对,否则邮箱链接、CSRF token 会出错,且部分前端路由 404
php artisan tinker 能不能进、php artisan migrate 能不能过、php artisan key:generate 是否真改了 .env 里的 APP_KEY——这三个命令一跑,基本就踩不到大坑了。


















