php依赖管理composer安装

1.composer安装Linux / macOS

1.前置条件

  • PHP ≥ 7.2(建议 ≥ 7.4 / 8.x)
  • 已安装 php-cli
  • 开启 openssl

验证:

1
2
3
php -v 	# --version
php -m | grep openssl # -m --model
php -i # --info

2.官方安装(最标准)

1
2
3
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

生成文件:

1
composer.phar

3.全局安装

1
2
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

验证:

1
composer -V

2.一行命令安装

1.curl 方式

1
2
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

2.wget 方式

1
2
wget -qO- https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

CI/CD 中非常常见,但建议锁版本


3.指定版本安装(生产 / 回滚友好)

1.安装指定版本

1
php composer-setup.php --version=2.7.6

2.为什么要指定版本

  • Composer 自身也会升级
  • 不同版本对依赖解析略有差异
  • 构建工具也要可复现

4.国内 / 内网环境优化

1.切换国内镜像(强烈推荐)

1
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

验证:

1
composer config -g --list

5.Docker 场景(强烈推荐)

1.官方 Composer 镜像

1
docker run --rm -v $(pwd):/app composer install

2.多阶段构建(最佳实践)

1
2
3
4
5
6
7
FROM composer:2 AS builder
WORKDIR /app
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --no-interaction

FROM php:8.2-fpm
COPY --from=builder /app/vendor /var/www/vendor

要点:

  • 构建期安装依赖
  • 运行期只带结果
  • 镜像更小、更安全

6.Windows 安装

1.官方安装器

  • 下载:Composer-Setup.exe
  • 自动配置 PATH
  • 自动检测 PHP

2.验证

1
composer -V

7. 常见坑位

1.PHP CLI 版本不一致

  • php -v
  • which php
  • web PHP ≠ CLI PHP

2.openssl / zip 缺失

1
php -m | grep -E 'openssl|zip'

3.权限问题(容器 / 服务器)

  • vendor 目录属主
  • CI 用户权限

8. 安装后初始化

1.初始化项目

1
composer init

2.安装依赖

1
composer install

3.自动加载

1
require __DIR__ . '/vendor/autoload.php';
  • 构建确定性的起点
  • PHP 工程化的第一块基石
  • DevOps / CI/CD 链路的入口