Ubuntu 22.04 应用官方 PHAR 安装 Composer:curl -sS https://getcomposer.org/installer | php,chmod +x composer.phar,sudo mv composer.phar /usr/local/bin/composer;全局命令需手动将 ~/.composer/vendor/bin 加入 PATH,并配置镜像源、超时与缓存路径。

Ubuntu 22.04 上别用 apt install composer
系统源里的 composer 是老旧阉割版:没 composer 命令别名、不带自动补全、版本常卡在 2.2.x(2026 年已停更),且默认不写入全局 PATH。你敲 composer --version 很可能直接报 command not found——不是没装,是它根本不在你能找到的地方。
- 用官方 PHAR 安装:运行
curl -sS https://getcomposer.org/installer | php,得到本地composer.phar - 加执行权限:
chmod +x composer.phar - 移进系统级 bin:
sudo mv composer.phar /usr/local/bin/composer - 验证:
composer --version应输出类似Composer version 2.7.7
为什么 composer global require laravel/installer 后还是不能用 laravel 命令
因为 Composer 全局安装的二进制文件(比如 laravel、phpunit)默认放在 ~/.composer/vendor/bin/,而这个路径**不在系统 PATH 里**。它和 /usr/local/bin 是两回事,shell 根本不会去那里找命令。
- 确认你的全局 bin 路径:
composer config --global home输出的是COMPOSER_HOME,再拼上/vendor/bin就是真实位置 - 把它加进 shell 配置:编辑
~/.zshrc(或~/.bashrc),追加一行:export PATH="$HOME/.composer/vendor/bin:$PATH" - 立即生效:
source ~/.zshrc - 验证是否成功:
echo $PATH看有没有那段路径;再试which laravel,应返回/home/xxx/.composer/vendor/bin/laravel
composer config -g 能配什么,哪些配置真有用
全局配置本质是改 ~/.composer/config.json,但不是所有键都常用。配错反而导致奇怪行为,比如镜像源写错 URL 会让所有 require 卡住。
- 必配镜像源(国内用户):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 调大超时(防网络抖动):
composer config -g process-timeout 3600 - 指定缓存目录(避免占满
$HOME):composer config -g cache-dir /mnt/data/composer-cache - 慎用
storage-path:它控制全局包安装位置,但改了之后必须同步更新PATH里的vendor/bin路径,否则所有全局命令失效
全局命令和项目依赖混用时最易忽略的一点
全局装的工具(如 laravel/installer)和项目里 require 的库(如 monolog/monolog)完全隔离——但它们共享同一个自动加载器入口。如果你在项目里手动 require 了全局 bin 目录下的脚本,或 IDE 硬编码了旧路径(比如某些老版本 PHPStorm 默认只扫 vendor/bin),就可能找不到命令,或加载冲突。
- 永远用
composer global list查已装全局包,别靠记忆猜命令名 - 删全局包前先
ls -l ~/.composer/vendor/bin/,看清软链指向哪,避免误删项目依赖 - 如果换过
COMPOSER_HOME(比如用export COMPOSER_HOME=/opt/composer),记得检查/opt/composer/vendor/bin是否在PATH里——漏掉这个,等于重装了一遍










