失败主因是php cli扩展缺失、镜像源失效、全局bin路径未生效;需分别检查php --ini确认cli配置、切换至腾讯云镜像https://mirrors.cloud.tencent.com/composer/、将~/.composer/vendor/bin加入path并重启终端。

失败不是 Laravel 本身的问题,而是 Composer 在中文环境里卡在了三个真实节点:PHP CLI 扩展缺失、镜像源失效、全局 bin 路径未生效。跳过重装 PHP 或改系统配置这种低效操作,先盯住这三处。
PHP CLI 模式下 mbstring/openssl/pdo 等扩展没加载
报错现象通常是 Class 'Mbstring' not found、ext-pdo does not exist 或直接卡在 create-project 第一步。注意:网页端 phpinfo() 显示有这些扩展,不代表 CLI 模式也启用了——XAMPP/WAMP/MAMP 用户尤其容易踩这个坑。
- 运行
php --ini,确认输出的Loaded Configuration File是 CLI 对应的 php.ini(不是 Apache 或 Nginx 的) - 编辑该 php.ini,取消注释以下行:
extension=mbstring、extension=openssl、extension=pdo、extension=tokenizer、extension=xml、extension=curl - Linux/macOS 用户若用 apt/brew 安装 PHP,需单独安装扩展包,例如 PHP 8.2:执行
sudo apt install php8.2-mbstring php8.2-xml php8.2-sqlite3 - 别用
--ignore-platform-reqs掩盖问题——它会让create-project成功,但后续php artisan key:generate或路由解析会随机崩
Composer 镜像源失效或被拦截
错误信息常见为 Could not fetch packages、Failed to decode response: zlib_decode(): data error 或连接超时。packagist.phpcomposer.com 已停用,阿里云镜像地址也从 https://mirrors.aliyun.com/composer/ 变更为 https://mirrors.cloud.tencent.com/composer/(2026 年起主流推荐)。
- 先确认 Composer 版本 ≥ 2.2:
composer --version;低于则运行composer self-update - 切镜像(全局):
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 或仅本次安装有效(更干净):
composer create-project --repository=https://mirrors.cloud.tencent.com/composer/ laravel/laravel myapp - 加
--prefer-dist强制走 ZIP 包,避免 Git 克隆失败:composer create-project --prefer-dist --repository=https://mirrors.cloud.tencent.com/composer/ laravel/laravel myapp
laravel 命令找不到或 global require 权限拒绝
执行 composer global require laravel/installer 后,终端仍提示 command not found: laravel,或报 failed to open stream: Permission denied。根本原因是全局 bin 目录未加入 PATH,或目录归属为 root。
- 确认全局 bin 路径:
composer config --global home返回值 +/vendor/bin,即 Linux/macOS 是~/.composer/vendor/bin,Windows 是%USERPROFILE%\AppData\Roaming\Composer\vendor\bin - 检查该路径是否在
$PATH(macOS/Linux)或%PATH%(Windows)中;没加就手动追加,并重启终端 - 若报权限拒绝,先运行
ls -ld ~/.composer,若所有者不是当前用户,执行sudo chown -R $USER:$USER ~/.composer - 永远不要用
sudo composer global require——它会让生成的二进制文件属主为 root,后续无法覆盖
最常被忽略的是 PHP CLI 和 Web Server 使用的 php.ini 不一致,以及镜像源 URL 实际已变更。这两点不验证,换多少次 Composer 或重装多少遍扩展都没用。











