laravel命令提示command not found,主因是全局bin路径未加入path或未正确安装;需执行composer global list验证安装、确认~/.composer/vendor/bin等路径存在、添加至shell配置并source生效。

执行 laravel 命令提示 command not found,或运行 composer create-project、composer install 等命令报错,本质不是 Laravel 本身的问题,而是 Composer 的全局配置、环境路径、镜像同步或依赖加载环节出了偏差。重点不在重装,而在准确定位哪一环断了。
laravel 命令找不到:PATH 和全局安装没对上
这个报错说明系统根本没认出 laravel 这个可执行文件。
- 先确认是否真装了:
composer global list | grep laravel/installer,有输出才代表已安装 - 查 Composer 全局 bin 路径,常见位置是
~/.composer/vendor/bin或~/.config/composer/vendor/bin,执行ls -la ~/.composer/vendor/bin/laravel看文件是否存在 - 把该路径加进 shell 配置(
~/.zshrc或~/.bashrc):export PATH="$HOME/.composer/vendor/bin:$PATH"(路径按你实际的改) - 重载配置:
source ~/.zshrc,再试laravel --version - Windows 用户注意:
laravel.bat依赖系统能调用php.exe,建议用composer create-project laravel/laravel your-project替代laravel new
装了 laravel 却 new 失败:镜像延迟或缓存卡住
报 Could not find package laravel/laravel with version ^11.0,大概率不是包不存在,而是本地缓存没更新,或镜像还没同步。
- 验证当前镜像是否生效:
composer config -g repo.packagist,输出必须是类似{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}的完整 JSON - 检查镜像元数据是否含目标版本:
curl -s https://mirrors.aliyun.com/composer/p2/laravel/framework.json | jq -r '.packages."laravel/framework" | keys[]' | sort | tail -3,对比官方源结果 - 清除过期 packages.json 缓存(关键!):
composer update --refresh(仅 Composer ≥2.5 支持) - 临时绕过镜像测试:
composer create-project laravel/laravel demo --repository=https://packagist.org
composer install 后 artisan 报错:autoload 或脚本挂了
能跑 composer install,但 php artisan 提示类找不到、函数未定义,说明自动加载或 post-install-cmd 钩子失败。
- 确认
vendor/autoload.php存在,且能被 PHP 正常加载:php -d display_errors=1 vendor/autoload.php - 强制刷新自动加载:
composer dump-autoload,生产环境可加--optimize - 加详细日志定位真实错误:
composer install -vvv,看最后一行报错,不是“Discovered Package…”那些日志 - 检查
composer.json的scripts是否引用了未安装的命令(如npm、yarn),CI/CD 中建议加--no-scripts - 删掉
bootstrap/cache/*.php和storage/framework/cache/data下的缓存文件,再重试
PHP 版本或扩展不匹配:底层支撑没到位
很多报错表面是 Composer 或 Laravel 的问题,根源其实是 PHP 环境不达标。
- 确认 CLI 使用的 PHP 版本:
php -v,Laravel 11 要求 PHP ≥8.2,Laravel 9/10 可用laravel/installer:^4 - 检查必需扩展是否启用:
php -m | grep -E 'openssl|mbstring|tokenizer|xml|json' - Laravel 7 在 PHP 8.1 上会大量报
Deprecated,这不是警告,是兼容性断裂,应降级到 PHP 7.4 - 内存不足常见于
composer update或php artisan key:generate,临时加大:php -d memory_limit=1.5G /path/to/composer.phar update











