新机器上敲 composer,返回 command not found。PHP 是装好的,php -v 有输出,只是这个包管理器还没进来。
先确认 PHP 版本和扩展
Composer 2 要求 PHP 7.2.5 以上,版本太低只能退回 Composer 1,而 1 早就停止维护了。php -m 看一遍,phar 和 openssl 这两个扩展必须存在,缺了后面下载依赖会报 TLS 相关的错,排查起来很费劲。
官方脚本装到全局
curl -sS https://getcomposer.org/installer | php ; sudo mv composer.phar /usr/local/bin/composer ; composer -V三步走完,任意目录都能调用。第二步要写权限,普通用户得加 sudo。想装在自己 home 下,把文件挪到 ~/.local/bin,再确认这个目录已经在 PATH 里,不然还是 command not found。
装完顺手升到最新:sudo composer self-update。这一步如果报权限错误,说明 composer 文件的属主不对,chown 改回来再试。
包管理器装省事但版本旧
Debian 和 Ubuntu 直接 apt install composer,CentOS 系要先装 EPEL 源再 yum install composer。好处是跟着系统一起更新,坏处是仓库里的版本往往落后好几个大版本,新项目的依赖可能直接装不上。生产机上用这条路,先跑 composer -V 看看够不够。
国内网络换镜像
拉包卡在 downloading 上,换成阿里云的镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。这条是全局配置,影响当前用户的全部项目。要换回官方源,把同一项改回默认值即可。
公司内网有私有仓库,就用 repositories 指向内部地址,别让构建过程去公网拉包。
项目里怎么用
新项目跑 composer init 生成 composer.json,require 依赖后 composer install 按 lock 文件还原。lock 文件一定要提交进版本库,它决定了别人装出来的版本和你完全一致。
验证装没装对只看一件事:换台机器 clone 下来,composer install 能不能一次跑通。跑不通,多半是 PHP 扩展或者版本没对齐。