Ubuntu 16.04下laravel: command not found问题的解决求助
首先咱们得捋清楚问题根源:Laravel的全局laravel命令来自Composer全局安装的laravel/installer包,如果这个包没装,或者它所在的bin目录不在系统PATH里,就会出现命令找不到的情况。咱们一步步来解决:
1. 先确保全局安装了Laravel Installer包
先执行这条命令,确认Laravel安装器已经全局部署:
composer global require laravel/installer
如果之前没装过,Composer会自动下载安装;如果已经装了,它会提示你更新到最新版本。
2. 找到Composer全局bin目录的位置
执行这条命令,获取Composer全局包的bin目录绝对路径:
composer global config bin-dir --absolute
执行后会输出类似这样的路径(不同系统/配置可能略有差异):
/home/your-username/.config/composer/vendor/bin
或者
/home/your-username/.composer/vendor/bin
3. 将这个路径添加到系统PATH中
临时生效(仅当前终端会话)
直接在终端执行,把路径替换成你刚才得到的结果:
export PATH="$PATH:/path/to/composer/bin"
比如如果输出的是/home/jack/.config/composer/vendor/bin,就执行:
export PATH="$PATH:/home/jack/.config/composer/vendor/bin"
之后马上测试laravel --version,应该就能正常输出版本号了。
永久生效(重启终端依然有效)
根据你使用的Shell类型操作:
- Bash用户:编辑
~/.bashrc或者~/.bash_profile文件(哪个存在就编辑哪个),在文件末尾添加一行:
保存后执行export PATH="$PATH:/path/to/composer/bin"source ~/.bashrc(或对应的文件)让配置立即生效。 - Zsh用户:编辑
~/.zshrc文件,同样在末尾添加上面那行,然后执行source ~/.zshrc生效。
4. 验证配置是否成功
执行echo $PATH,查看输出里是否包含你刚才添加的Composer bin目录。再执行laravel --version,如果能正常显示Laravel安装器的版本,就说明问题解决了。
关于composer create-project的补充
如果你用composer create-project --prefer-dist laravel/laravel new-site-name创建项目时遇到问题,大概率是PHP扩展依赖没满足(比如BCMath、Ctype、JSON等),可以执行php -m查看已启用的扩展,对比Laravel官方要求补全缺失的扩展。要是你确认依赖都齐了,那可能是网络问题导致Composer下载失败,可以尝试更换镜像源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
之后再重新执行创建项目的命令即可。
内容的提问来源于stack exchange,提问作者DEBASHIS BAIDYA

