CentOS 上学习使用 Composer 的简明指南
一 环境准备与安装
- 准备环境:确保已安装 PHP CLI 及常用扩展(至少包含 php-cli、php-json、php-zip),并建议具备 sudo 权限。
- 安装方式一(推荐,带完整性校验):
- 安装依赖:sudo dnf install php-cli php-json php-zip wget unzip
- 下载安装脚本:php -r “copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);”
- 校验 SHA-384:HASH=“$(wget -q -O - https://composer.github.io/installer.sig)”; php -r “if (hash_file(‘SHA384’, ‘composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”
- 安装为全局命令:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
- 验证:composer -V
- 安装方式二(快速):
- 安装依赖:sudo dnf install php-cli php-json php-zip curl unzip
- 下载并安装:curl -sS https://getcomposer.org/installer | php
- 移动到 PATH:sudo mv composer.phar /usr/local/bin/composer
- 验证:composer -V
- 安全建议:Composer 不建议以 root 身份运行(涉及插件与脚本执行权限),日常请使用普通用户或在必要时按需提权。
二 初次使用与国内镜像
- 全局配置国内镜像(提升下载速度,推荐):composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
- 仅当前项目配置镜像(进入项目根目录执行):composer config repo.packagist composer https://mirrors.aliyun.com/composer/
- 取消镜像:composer config -g --unset repos.packagist(全局);composer config --unset repos.packagist(项目)
- 常用命令速览:
- 查看版本:composer -V
- 初始化项目:composer init(交互生成 composer.json)
- 安装依赖:composer install(优先使用 composer.lock 的版本)
- 新增依赖:composer require 包名[:版本](自动写入 composer.json)
- 更新依赖:composer update [包名…](遵循版本约束,更新 composer.lock)
- 移除依赖:composer remove 包名
- 搜索包:composer search 包名
- 查看已装包:composer show
- 执行脚本:composer run-script 脚本名
- 诊断与维护:composer diagnose、composer clear-cache、composer self-update
三 典型工作流示例
- 示例一 新建项目并引入依赖
- 创建项目:composer require nesbot/carbon(自动生成 composer.json 与 composer.lock)
- 在代码中引入自动加载并使用:
- require ‘vendor/autoload.php’;
- use Carbon\Carbon;
- echo Carbon::now();
- 示例二 克隆现有项目并安装
- 克隆代码后进入目录:cd your-project
- 安装锁定版本:composer install(如仅需生产依赖可加 --no-dev)
- 若修改了 autoload 映射或新增类文件:composer dump-autoload 或 composer dump-autoload -o(生产环境建议 -o 优化自动加载)
- 需要快速创建框架/脚手架项目:composer create-project 包名 目标目录 [版本]
四 常用参数与版本约束
- 安装与更新常用参数
- –prefer-dist:优先使用压缩包分发(更快,适合构建环境)
- –prefer-source:优先从版本控制源拉取(便于打补丁)
- –no-dev:跳过 require-dev 依赖(生产环境常用)
- –optimize-autoload / -o:优化 PSR-0/4 到 classmap,提升加载性能(生产推荐)
- 版本约束写法
- 运算符:>、>=、<、<=、!=
- 组合:, 表示逻辑 AND,| 表示逻辑 OR(AND 优先级更高)
- 通配符:1.0.*
- 波浪号:~1.2 等价于 >=1.2,<2.0;~1.2.3 等价于 >=1.2.3,<1.3.0
- 脱字符:^1.2.3 等价于 >=1.2.3,<2.0.0(保持最左侧非零位不变)
五 排错与最佳实践
- 安装脚本无法下载或校验失败:检查网络与 DNS;必要时使用带校验的安装流程(方式一);若使用 wget 报证书问题,可临时使用 --no-check-certificate(仅用于排查,不建议长期使用)。
- PHP 配置限制:若 php -r 方式下载失败,检查 allow_url_fopen 是否开启,必要时在 php.ini 中设置并重启服务。
- 权限与运行:避免以 root 运行 Composer;如需全局命令,请将可执行文件放入 /usr/local/bin 并确保目录权限正确。
- 镜像与锁文件:团队协作请提交 composer.lock;切换镜像后若依赖解析异常,可先 composer update --lock 再按需更新;定期执行 composer self-update 保持工具链最新。