根本原因是Composer默认源访问缓慢或被拦截导致依赖拉取失败;应切换为阿里云镜像、升级Composer≥2.2、清缓存后重试;PHP需启用mbstring等扩展;laravel new命令需全局安装installer;安装后须执行key:generate并确保storage可写。

Composer 安装 Laravel 时提示 laravel/installer 不可用或 require 失败
根本原因通常是 Composer 默认源访问缓慢或被拦截,导致依赖元数据拉取失败,不是 Laravel 本身有问题。国内用户大概率遇到的是这个环节卡在 Updating dependencies 或直接报 Could not parse version constraint 类错误。
- 先运行
composer config -g repo.packagist composer https://packagist.phpcomposer.com(已过期)——别用,该镜像自 2022 年起停止维护,会触发403 Forbidden或 SSL 验证失败 - 正确做法是切换为阿里云或腾讯云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 执行前确认 Composer 版本 ≥ 2.2:
composer --version;若低于此版本,先升级:composer self-update - 换源后清空缓存:
composer clear-cache,再重试composer create-project laravel/laravel example-app
安装成功但运行 php artisan serve 报错 Class 'PDO' not found 或 mbstring extension is missing
Laravel 启动依赖多个 PHP 扩展,缺一不可。报这类错说明 PHP CLI 模式下扩展未启用,和网页端 phpinfo() 显示的扩展可能不一致。
- 检查 CLI 使用的 php.ini 路径:
php --ini,重点看Loaded Configuration File行 - 编辑该
php.ini,确保以下扩展行取消注释(去掉前面的分号):extension=mbstring、extension=pdo_sqlite、extension=openssl、extension=ctype、extension=xml - Linux 下若用 apt 安装的 PHP,还需单独安装扩展包,例如 PHP 8.1:
sudo apt install php8.1-mbstring php8.1-xml php8.1-sqlite3 php8.1-opcache - Windows 用户注意:XAMPP / WAMP 的 CLI 和 Apache 使用不同 php.ini,必须改对 CLI 对应的那个
laravel new 命令报错 Command "new" is not defined
这是 Laravel Installer 未全局安装或版本不兼容的典型表现。Laravel 9+ 已弃用 laravel new,改用 create-project,但很多人仍习惯用旧命令。
- 如果坚持用
laravel new,需手动安装最新版 installer:composer global require laravel/installer - 确认
~/.composer/vendor/bin(Linux/macOS)或%USERPROFILE%\AppData\Roaming\Composer\vendor\bin(Windows)已加入系统 PATH - 运行
laravel --version验证是否生效;若提示 command not found,说明 PATH 未刷新,重启终端或重新登录用户 - 更推荐直接用
composer create-project laravel/laravel:^10.x myapp,显式指定版本,避免隐式依赖冲突
安装后访问首页显示 Whoops! There was an error. 或空白页
这不是 Composer 阶段的问题,而是 Laravel 运行环境配置遗漏。常见于权限、目录写入、APP_KEY 未生成三类情况。
立即学习“PHP免费学习笔记(深入)”;
- 检查
storage/和bootstrap/cache/是否可写:chmod -R 775 storage bootstrap/cache(Linux/macOS) - 首次运行前必须生成密钥:
php artisan key:generate,否则 session 和加密全部失效 - Apache 用户确认开启了
mod_rewrite,Nginx 用户确认已按 Laravel 文档配置了try_files $uri $uri/ /index.php?$query_string - 日志最准:
tail -f storage/logs/laravel.log,比浏览器报错详细得多
composer create-project 和 php artisan key:generate 这两步最容易被跳过,而错误日志又常被忽略——结果就是反复重装,却没发现只是少敲了一行命令。











