在联网环境使用 composer install –no-autoloader –no-scripts –prefer-dist 下载依赖并生成 composer.lock;2. 复制缓存目录 ~/.composer/cache/files 中的包到内网机器;3. 配置内网 Composer 全局 cache-files-dir 指向本地缓存路径;4. 运行 composer install –no-autoloader –no-scripts –prefer-dist 脱机安装。关键为保留 lock 文件与完整缓存。

在离线或内网环境中使用 Composer 安装 PHP 依赖时,由于无法访问 packagist.org 或 GitHub 等远程源,直接运行 composer install 会失败。解决办法是在有网络的环境中提前下载所有必需的包和元数据,然后将缓存复制到目标环境。以下是具体操作步骤。
1. 准备依赖清单并下载完整缓存
在一台可联网的机器上,确保项目中已存在 composer.json 和 composer.lock 文件(lock 文件必须存在,它锁定依赖版本)。
执行以下命令预下载所有依赖包:
composer install –no-autoloader –no-scripts –prefer-dist – 这会安装依赖并下载所有 .zip 或 .tar 包到本地缓存目录
Composer 默认将包缓存到用户目录下的 ~/.composer/cache/files(Linux/macOS)或 C:Users用户名AppDataRoamingComposerCachefiles(Windows)。
2. 手动导出缓存文件
找到缓存路径后,复制整个 files 目录中的内容。这些是每个依赖包的压缩包(如 vendor/package/version.zip),Composer 在离线安装时会优先使用它们。
也可以通过配置自定义缓存路径以便集中管理:
composer config cache-files-dir /path/to/local-cache
之后再运行 composer install,所有包都会下载到指定目录,便于打包转移。
3. 配置离线环境使用本地缓存
将项目和缓存文件一起复制到内网机器。确保 Composer 已安装。
设置 Composer 使用本地缓存路径:
composer config –global cache-files-dir /your/local/cache/path
然后在项目目录下运行:
composer install –no-autoloader –no-scripts –prefer-dist –no-progress –no-suggest
如果所有包已在缓存中,Composer 将跳过网络请求,直接解压本地包完成安装。
4. 可选:打包为私有镜像或本地仓库
对于多项目共享场景,可进一步将缓存部署为私有 Satis 或 Toran Proxy 服务器,构建内网镜像站。但若仅需单次部署,直接复制缓存更简单高效。
关键是保证 composer.lock 不变,且缓存中包含 lock 文件所列的所有包版本。
基本上就这些。只要提前把包下全,并正确设置缓存路径,Composer 在无网环境下也能顺利完成依赖安装。
以上就是Composer如何为离线或内网环境准备完整的依赖包缓存的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/142454.html
微信扫一扫
支付宝扫一扫