离线配置 composer 的核心是将线上流程转为静态资产:需在联网机用官方 sha384 校验下载 installer 并生成 composer.phar,确保 openssl/zlib/json/mbstring 四扩展启用;离线部署依赖须完整拷贝 vendor/、composer.lock 和 composer.json,再执行 composer install --no-dev --ignore-platform-reqs。

离线配置 Composer 不复杂,但必须放弃“联网安装”思维——它本质是把线上流程拆解为可搬运的静态资产,关键在提前准备、路径对齐、签名可信。
离线安装包怎么生成(含签名与校验)
离线安装的核心不是下载 composer.phar 就完事,而是确保它能通过官方 SHA384 校验。官方 installer 脚本本身不带签名,必须用带哈希值的发布页生成:
- 访问
https://getcomposer.org/download/,找最新稳定版(如 2.7.7),页面会明确列出Installer SHA384值 - 用 curl 下载 installer:
curl -sS https://getcomposer.org/installer -o composer-installer.php - 本地校验:
sha384sum composer-installer.php,输出必须和网页上的一致;不一致说明下载被截断或缓存污染 - 执行安装:
php composer-installer.php --filename=composer.phar,生成带完整依赖解析能力的二进制
离线环境 PHP 扩展缺一不可
没网络时,扩展缺失不会报错提示“请装 openssl”,而是直接卡死在 JSON 解析或 ZIP 解压环节。必须手动确认四扩展全部启用:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
php -m | grep -E "openssl|zlib|json|mbstring",四行都得有输出 - 缺
openssl:离线无法验证包签名,composer install会停在 “Verifying checksum” - 缺
zlib:vendor 包解压失败,错误信息是 “unable to decompress gzipped phar” - 缺
mbstring:中文包名或 UTF-8 路径解析失败,composer.json读取直接报错 - CentOS/Debian 离线装扩展需提前下载对应 rpm/deb 包,注意 PHP 主版本号(如 php81-php-zip 不等于 php-zip)
离线项目依赖如何还原(不用 packagist)
不能指望 composer install 自己连外网找包,必须提前准备好 vendor 快照:
- 在线机器执行
composer install --no-dev --prefer-dist,确保composer.lock已生成且未被修改 - 打包整个
vendor/目录 +composer.lock+composer.json,一起拷到离线机 - 离线机上只需运行
composer install --no-dev --ignore-platform-reqs,它会跳过平台检查,只校验 lock 文件与 vendor 内容一致性 - 若要更新依赖,只能回到在线环境改
composer.json→composer update→ 重新打包,离线机不参与解析过程
最容易被忽略的是:离线机上的 php.ini 必须关闭 disable_functions 中的 proc_open 和 exec,否则 Composer 在执行脚本类包(如 laravel/installer 的 post-install-cmd)时会静默失败,没有任何错误提示。










