CentOS 离线安装 Composer 实操指南
一 准备与前提
- Composer 不会随 CentOS 自带,需自行安装;同时 PHP 也不会自带,需先准备可用的 PHP CLI 环境。离线安装前,建议在可联网机器上完成下载,再拷贝到目标服务器。离线环境需确保已安装 PHP 及常用扩展(至少包含 php-cli、php-json、php-zip,以及网络请求所需的 php-curl)。
二 离线安装步骤
- 在可联网机器下载所需文件(示例为 Composer 2.x 最新稳定版;如需 1.x,将版本号替换为 1.10.27 等具体版本):
- 下载安装脚本并校验签名(SHA-384):
- wget https://getcomposer.org/installer -O composer-setup.php
- HASH=$(wget -qO- https://composer.github.io/installer.sig)
- php -r “if(hash_file(‘SHA384’,‘composer-setup.php’)===‘$HASH’){echo’Installer verified’;}else{unlink(‘composer-setup.php’);echo’Installer corrupt’;}”
- 执行安装脚本生成 composer.phar:
- php composer-setup.php --install-dir=/tmp --filename=composer.phar
- 将以下文件拷入离线机的同一目录(如 /opt/offline/composer/):
- composer.phar
- (可选)composer-setup.php(留作校验或再次安装)
- 在离线机安装并验证:
- 移动到可执行路径并赋权:
- sudo mv /opt/offline/composer/composer.phar /usr/local/bin/composer
- sudo chmod +x /usr/local/bin/composer
- 验证版本:
- 说明:上述安装流程与官方安装脚本一致,仅将“在线下载脚本/拉取 phar”改为“离线拷贝文件后本地执行”,适用于 CentOS 7/8 等常见版本。
三 离线使用与私有镜像
- 离线安装依赖包的思路:
- 在一台可联网的“中转机”使用 Composer 将项目依赖下载到本地缓存(vendor)或导出为归档,再拷贝到离线机:
- 仅下载不安装:composer install --dry-run
- 导出依赖包:composer archive -f zip -o deps.zip --working-dir=/path/to/project
- 或打包整个项目目录(含 vendor):tar czf project.tar.gz -C /path/to/project .
- 在离线机解压/放置依赖后,使用本地 autoload 运行项目:
- require DIR.‘/vendor/autoload.php’;
- 内网镜像与加速(可选,在有内网镜像源时):
- 全局配置镜像(便于所有项目使用):
- composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 仅当前项目配置(去掉 -g):
- composer config repo.packagist composer https://packagist.phpcomposer.com
- 取消镜像:
- composer config -g --unset repos.packagist
- 说明:镜像仅影响“下载依赖”阶段;若完全离线,请配合“中转机下载 + 归档拷贝”的方式使用。
四 常见问题与排查
- 执行 php composer-setup.php 时报错 “Failed to decode zlib stream”:给脚本增加可执行/写权限(chmod a+x composer-setup.php),或确认 PHP 具备 zlib 支持。
- 运行 composer 报 “未预期的符号 `newline’ 附近有语法错误”:多半是下载的 composer.phar 损坏或不完整,重新下载/拷贝。
- 使用 wget 下载 phar 出现证书错误:不建议长期关闭校验;优先更新 CA 证书,或临时使用 --no-check-certificate(仅测试环境)。
- 提示 php 命令不存在或缺少模块:离线机需预装 PHP CLI 及 php-cli、php-json、php-zip、php-curl 等依赖,再安装 Composer。