Ubuntu/Debian 应用官方脚本安装 Composer:先装 php-cli、curl、unzip,再执行 curl -sS https://getcomposer.org/installer | php,移至 /usr/local/bin/composer 并赋执行权限,设国内镜像及 ca-certificates 防 SSL 错误。

Ubuntu 上装 Composer 就一条命令,但得先确认 PHP 和 curl
Ubuntu 官方源里的 composer 包老旧(常是 1.x),直接用官方包管理器装大概率踩坑。推荐用官方安装脚本,它生成的是独立的 composer.phar,版本新、更新快、不污染系统。
常见错误现象:Command 'composer' not found 或 curl: (7) Failed to connect —— 多半是没装 php-cli 或 curl,或者网络卡在 GitHub。
- 先跑
sudo apt update && sudo apt install -y php-cli curl unzip(Debian 同样适用) - 再执行
curl -sS https://getcomposer.org/installer | php,生成当前目录下的composer.phar - 把它挪到全局可执行位置:
sudo mv composer.phar /usr/local/bin/composer - 验证:
composer --version,输出类似Composer version 2.7.7就成了
Debian 环境下 PATH 和权限容易出问题
Debian 默认用户 shell 可能没把 /usr/local/bin 加进 PATH,或者 composer 文件没执行权限——这会导致命令找不到或 Permission denied。
使用场景:你用非 root 用户(比如 www-data 或普通开发账户)跑 CI/CD 或部署脚本时,composer install 突然失败。
- 检查
echo $PATH是否含/usr/local/bin;没有就加到~/.bashrc或/etc/environment - 确认权限:
ls -l /usr/local/bin/composer,应该显示-rwxr-xr-x;若不是,补上sudo chmod +x /usr/local/bin/composer - 如果用 systemd 服务运行 PHP 进程,记得在 service 文件里显式设置
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
别用 apt install php-composer —— 版本太老,autoload 会崩
Ubuntu/Debian 源里 php-composer 包多数停留在 Composer 1.x,而 Laravel、Symfony 等主流框架已默认要求 Composer 2.x。最典型的后果是 composer install 成功但 vendor/autoload.php 加载失败,报错 Class Composer\Autoload\ClassLoader not found。
性能影响:Composer 2.x 的 autoload 生成速度比 1.x 快 2–3 倍,尤其在大型项目中差异明显。
- 卸载旧包:
sudo apt remove php-composer(如果装过) - 删掉残留:
sudo rm -f /usr/bin/composer - 重装用官方方式(见第一个副标题),确保
composer --version输出是2.x - 已有项目请运行
composer self-update,避免本地composer.phar锁在旧版
国内用户绕不开的镜像和 ca-certificates 问题
直接连 packagist.org 在国内大概率超时或 403,但光换镜像还不够——如果系统没装 ca-certificates,HTTPS 请求会失败,表现为 file_get_contents(): SSL operation failed 或 cURL error 60。
使用场景:Docker 容器里跑 Composer、或最小化安装的 Debian(比如 debian:slim)。
- 先装证书:
sudo apt install -y ca-certificates - 设国内镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com(注意:该镜像已停,改用https://mirrors.aliyun.com/composer/) - 验证镜像生效:
composer config -g repo.packagist应返回对应 URL - 临时切回官方源调试用:
composer config -g --unset repos.packagist










