Composer是PHP项目的依赖管理工具,需与PHP共存且正确安装到PATH中;必须校验哈希后执行安装器,避免使用系统包管理器安装旧版,并注意镜像源、SSL证书及proc_open限制等常见问题。

Composer 不是“安装 PHP 依赖管理工具”,而是 PHP 项目的依赖管理工具本身——它不依赖 PHP 扩展,但必须和 PHP 二进制可执行文件共存;装错位置、权限不对、或用了系统包管理器(如 apt/yum)装的旧版,基本等于没装。
怎么判断 composer 真正可用
很多人以为运行了安装脚本就完事了,其实只是把 composer.phar 下载下来,还没让它变成全局命令。常见错误现象:command not found: composer,或运行 composer --version 报 Permission denied。
- 先确认 PHP 可用:
php -v输出版本号(建议 ≥ 7.4,8.x 更稳) - 检查下载的
composer.phar是否有执行权限:ls -l composer.phar,若无x,补上:chmod +x composer.phar - 全局可用的关键是把它放到
$PATH里的某个目录,比如/usr/local/bin/composer(推荐),而不是只放在当前项目目录下 - 别用
sudo apt install composer:Ubuntu/Debian 官方源里版本常卡在 1.x 或老旧 2.x,不支持 PHP 8.2+ 新特性,且无法升级
curl -sS https://getcomposer.org/installer 后该做什么
这个命令只是下载安装器,不是安装完成。它生成的是一个叫 composer-setup.php 的 PHP 脚本,需要你主动执行并校验哈希——跳过校验可能引入被篡改的二进制。
- 下载后务必验证签名:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1f6133267b7b9067c888a390a7b327f8f735e08e05e4b92471334d4a3873254b367a752e399b54e1c6e01d5794546a1d4751d44b75727a9')…(官网每次更新会换哈希,去 getcomposer.org/download/ 复制最新值) - 执行安装器:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 如果提示
Could not open input file: composer-setup.php,说明你漏掉了php前缀,不能双击或直接 ./ 运行
为什么 composer install 在某些服务器上卡住或失败
这不是 Composer 本身的问题,而是它默认行为和网络环境/PHP 配置冲突。最常踩的坑是 DNS 解析慢、HTTPS 证书验证失败、或 allow_url_fopen 被禁用。
立即学习“PHP免费学习笔记(深入)”;
- 国内用户大概率遇到 Packagist(
https://packagist.org)响应慢:临时切镜像源更有效,运行composer config -g repo.packagist composer https://packagist.phpcomposer.com(注意:此镜像已停更,现推荐https://mirrors.aliyun.com/composer/) - 如果报
cURL error 60: SSL certificate problem,别粗暴关 CURLOPT_SSL_VERIFYPEER,而是更新 CA 证书包,或设环境变量:export COMPOSER_CAFILE=/etc/ssl/certs/ca-certificates.crt - 某些共享主机禁用
proc_open或exec,会导致composer install无法解压 zip 包,此时加--prefer-source强制走 git clone(前提是主机装了 git)
真正麻烦的不是装不上,而是装对了但没意识到 composer.json 里 require 和 require-dev 的区别,或者忽略 composer.lock 该不该提交进 Git——这些细节一旦出错,本地能跑,上线就崩。











